Vergelijk twee database kolommen voordat email verzend
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
$Allbrands = $wpdb->get_results("SELECT Allbrands FROM wp_users", OBJECT);
$brand1 = $wpdb->get_results("SELECT Merk1 FROM wp_users", OBJECT);
$brand2 = $wpdb->get_results("SELECT Merk2 FROM wp_users", OBJECT);
$brand3 = $wpdb->get_results("SELECT Merk FROM Reparation", OBJECT);
if ( ! empty( $user_query->results ) ) {
foreach ($user_query->results as $user) {
$point1 = array('lat' => $_POST['latitude'], 'long' => $_POST['longitude']);
$point2 = array('lat' => $user->latitude, 'long' => $user->longitude);
$retvalDistance = $distance->getDistance($point1['lat'], $point1['long'], $point2['lat'], $point2['long']);
if ($retvalDistance <= $automaker['application']['distance'] && $Allbrands[0]->Allbrands == 1) {
$message = file_get_contents(__DIR__ . '/templates/reparation_garage.html');
$message = str_replace('%TITLE%', $_POST['Title'], $message);
$message = str_replace('%GARAGE%', $user->company_name, $message);
$headers = 'From: Automaker.nl <[email protected]>' . "\r\n";
wp_mail($user->user_email, 'Er is een nieuwe reparatie geplaatst op Automaker.nl!', $message, $headers);
}
elseif ($retvalDistance <= $automaker['application']['distance'] && $brand1 === $brand3) {
$message = file_get_contents(__DIR__ . '/templates/reparation_garage.html');
$message = str_replace('%TITLE%', $_POST['Title'], $message);
$message = str_replace('%GARAGE%', $user->company_name, $message);
$headers = 'From: Automaker.nl <[email protected]>' . "\r\n";
wp_mail($user->user_email, 'Er is een nieuwe reparatie geplaatst op Automaker.nl!', $message, $headers);
}
elseif ($retvalDistance <= $automaker['application']['distance'] && $brand2 === $brand3) {
$message = file_get_contents(__DIR__ . '/templates/reparation_garage.html');
$message = str_replace('%TITLE%', $_POST['Title'], $message);
$message = str_replace('%GARAGE%', $user->company_name, $message);
$headers = 'From: Automaker.nl <[email protected]>' . "\r\n";
wp_mail($user->user_email, 'Er is een nieuwe reparatie geplaatst op Automaker.nl!', $message, $headers);
}
?>
$Allbrands = $wpdb->get_results("SELECT Allbrands FROM wp_users", OBJECT);
$brand1 = $wpdb->get_results("SELECT Merk1 FROM wp_users", OBJECT);
$brand2 = $wpdb->get_results("SELECT Merk2 FROM wp_users", OBJECT);
$brand3 = $wpdb->get_results("SELECT Merk FROM Reparation", OBJECT);
if ( ! empty( $user_query->results ) ) {
foreach ($user_query->results as $user) {
$point1 = array('lat' => $_POST['latitude'], 'long' => $_POST['longitude']);
$point2 = array('lat' => $user->latitude, 'long' => $user->longitude);
$retvalDistance = $distance->getDistance($point1['lat'], $point1['long'], $point2['lat'], $point2['long']);
if ($retvalDistance <= $automaker['application']['distance'] && $Allbrands[0]->Allbrands == 1) {
$message = file_get_contents(__DIR__ . '/templates/reparation_garage.html');
$message = str_replace('%TITLE%', $_POST['Title'], $message);
$message = str_replace('%GARAGE%', $user->company_name, $message);
$headers = 'From: Automaker.nl <[email protected]>' . "\r\n";
wp_mail($user->user_email, 'Er is een nieuwe reparatie geplaatst op Automaker.nl!', $message, $headers);
}
elseif ($retvalDistance <= $automaker['application']['distance'] && $brand1 === $brand3) {
$message = file_get_contents(__DIR__ . '/templates/reparation_garage.html');
$message = str_replace('%TITLE%', $_POST['Title'], $message);
$message = str_replace('%GARAGE%', $user->company_name, $message);
$headers = 'From: Automaker.nl <[email protected]>' . "\r\n";
wp_mail($user->user_email, 'Er is een nieuwe reparatie geplaatst op Automaker.nl!', $message, $headers);
}
elseif ($retvalDistance <= $automaker['application']['distance'] && $brand2 === $brand3) {
$message = file_get_contents(__DIR__ . '/templates/reparation_garage.html');
$message = str_replace('%TITLE%', $_POST['Title'], $message);
$message = str_replace('%GARAGE%', $user->company_name, $message);
$headers = 'From: Automaker.nl <[email protected]>' . "\r\n";
wp_mail($user->user_email, 'Er is een nieuwe reparatie geplaatst op Automaker.nl!', $message, $headers);
}
?>
Ik heb dus drie verschillende statements die moeten bepalen of de email verzonden moet worden of niet. Als een bezoeker een formulier invult wordt deze verzonden naar alle bedrijven in een straal van 20 kilometer, en het bekijkt of deze bedrijven alle automerken of bepaalde automerken willen ontvangen.
De eerste statement werkt perfect zonder gebreken. De tweede en derde statements die werken niet zoals ik deze wil laten werken. Ik probeer $brand1 met $brand3 te vergelijken, als deze gelijk zijn moet deze een email versturen naar het bedrijf, zo niet dan moet het bekijken of $brand2 en $brand3 gelijk zijn. zo niet dan verstuurd deze geen mail naar dit bedrijf.
Nu heb ik een account aangemaakt die gelijk is aan $brand3, maar ik wil niet alle automerken ontvangen. Helaas ontvang ik dan helemaal niks meer. Hoe kan ik twee verschillende inputs in mysql in twee verschillende tabellen met elkaar vergelijken? En als deze gelijk zijn ook daadwerkelijk een email verstuurd?
Inputs kunnen bijvoorbeeld zijn BMW
Dus Brand1 = BMW en Brand3 = BMW (verstuur email)
Brand1 = Opel en Brand3 = BMW (check tweede elseif)
Brand2 = Mercedes en Brand3 = BMW (Verstuur geen email)
Ontzettend bedankt voor het doornemen van mijn probleem :)
- Aar -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 27/01/2015 09:48:30 door - Ariën -
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$brand1 = $wpdb->get_results("SELECT Merk1 FROM wp_users", OBJECT);
$brand2 = $wpdb->get_results("SELECT Merk2 FROM wp_users", OBJECT);
$brand3 = $wpdb->get_results("SELECT Merk FROM Reparation", OBJECT);
?>
$brand1 = $wpdb->get_results("SELECT Merk1 FROM wp_users", OBJECT);
$brand2 = $wpdb->get_results("SELECT Merk2 FROM wp_users", OBJECT);
$brand3 = $wpdb->get_results("SELECT Merk FROM Reparation", OBJECT);
?>
Ik vermoed dat het geen strings zijn, zoals 'BMW', maar objecten. Twee objecten zijn echter nooit gelijk:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$a = new stdClass();
$b = new stdClass();
$conditie = ($a === $b);
var_dump($conditie); // false, dus $a en $b zijn ongelijk
?>
$a = new stdClass();
$b = new stdClass();
$conditie = ($a === $b);
var_dump($conditie); // false, dus $a en $b zijn ongelijk
?>
Uit oogpunt van lookup(snelheid) is het ook een beter idee om gegevens aan elkaar te knopen / op te zoeken via deze kolommen.
En als alle "communicatie" verloopt via id's kun je labels vrij aanpassen. Als je daarintegen twee tabellen aan elkaar knoopt via de labels dan kun je niet zomaar de inhoud van een label wijzigen, omdat je daarmee mogelijk relaties verbreekt (zonder dat je database je daar op wijst).
Hoe kan ik dan dit probleem toch voor elkaar krijgen, zodat ik twee verschillende objecten met elkaar kan vergelijken zodat het systeem kan bepalen of hun keuze gelijk is aan de offerte die werd aangevraagd?
Een offerte aanvrager met een BMW moet verzonden worden naar garages binnen een straal van 20 kilometer met de keuze of alle merken of tenminste de merk BMW in hun keuzelijst.
En als $user_query haar gegevens uit wp_users haalt, waar zijn de queries $Allbrands, $brand1 en $brand2 dan voor nodig, die komen immers ook uit wp_users?
Daarnaast is er geen verband tussen de users die je doorloopt in $user_query->results en de users die horen bij $Allbrands, $brand1 en $brand2, of zie ik dit verkeerd?
Of combineert $user_query->results de resultaten van eerdere get_results() opdrachten?
TL;DR: Hoe zorg je ervoor dat $Allbrands, $brand1, $brand2 en $user_query->results synchroon lopen?
In alle drie de gevallen is het eerste deel van het if-statement hetzelfde (waar komt $automaker trouwens vandaan?).
Ik denk dat je je code kunt verkorten en vereenvoudigen. Misschien lost het probleem zich dan vanzelf op? ^^
Quote:
f you have a SELECT query, for which you’d normally do a mysql_query() followed by a mysql_fetch_*(), WPDB lets you combine this into one function call.
To get all of the results from a query that returns more than one row, use $wpdb->get_results() to return an array of objects containing your data.
To get all of the results from a query that returns more than one row, use $wpdb->get_results() to return an array of objects containing your data.
De functie get_results is een combinatie van mysql_fetch of indien men gebruik maakt van PHP 5.5 of hoger mysqli_fetch.
Ik heb ook al de opdracht get_var() geprobeerd.
Deze roept één veld op.
Ik probeer namelijk één bepaalde veld op te roepen aangezien ik de rest van de velden niet nodig heb, dus in dit geval roep ik de velden Merk1, Merk2 vanuit tabel wp_users op en Merk vanuit tabel Reparation.
In eerste instantie probeer ik Merk1 te vergelijken met Merk van het andere tabel (deze dient gelijk te zijn), indien niet gelijk Merk2 met Merk vergelijken en indien weer niet gelijk geen email versturen.
user_query is een combinatie van de plugin AAM en onze website. Deze geeft garages een bepaalde rol om in de website de gegevens na te kunnen kijken, dus een offerte uit Amsterdam wordt niet bekeken door een bedrijf uit bijvoorbeeld Leeuwarden aangezien dit de 20 kilometer overschrijdt.
door de variabel $retvaldistance geeft deze al aan om welke garage het gaat door middel van de volgende code:
Code (php)
1
2
3
4
5
2
3
4
5
if ( ! empty( $user_query->results ) ) {
foreach ($user_query->results as $user) {
$point1 = array('lat' => $_POST['latitude'], 'long' => $_POST['longitude']);
$point2 = array('lat' => $user->latitude, 'long' => $user->longitude);
$retvalDistance = $distance->getDistance($point1['lat'], $point1['long'], $point2['lat'], $point2['long']);
foreach ($user_query->results as $user) {
$point1 = array('lat' => $_POST['latitude'], 'long' => $_POST['longitude']);
$point2 = array('lat' => $user->latitude, 'long' => $user->longitude);
$retvalDistance = $distance->getDistance($point1['lat'], $point1['long'], $point2['lat'], $point2['long']);
Door && te gebruiken vergelijkt hij meteen of voor deze garage de Merk1 en Merk2 zijn ingesteld.
Voor $Allbrands werkt het ook (tinyint) dus zou het volgens mij ook voor deze moeten werken lijkt mij.
$automaker staat voor het bestand automaker.php in folder /inc/automaker.php
Hierin staat beschreven wat de straal is van garage tot offerte aanvrager.
application = array
distance = 20
Ik heb er voor gekozen dat de eerste deel van de code hetzelfde is omdat iedere mail niet verder van de garage verwijdert mag zijn dan 20 kilomter. Het enige verschil moet zijn de opties die zij zelf gekozen hebben (alle merken, een bepaalde merk).
Bedankt voor de goede ondersteuning, hoop dat je hier wat aan hebt.
Toevoeging op 27/01/2015 15:37:12:
Een kleine aanpassing, je hebt mij eventjes wat laten inzien, het werkt helaas nog niet, waarschijnlijk omdat het objects zijn?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
if (count($error) <= 0) {
$pass = wp_generate_password ( 12, false );
$register = array(
'Title' => $_POST['Title'],
'Zipcode' => $_POST['Zipcode'],
'Description' => $_POST['Description'],
'Merk' => $_POST['Merk'],
'Handelsbenaming' => $_POST['Handelsbenaming'],
'LicensePlate' => $_POST['open_rdw-921'],
'Name' => $_POST['Name'],
'Phone' => $_POST['Phone'],
'Email' => $_POST['Email'],
'Latitude' => $_POST['latitude'],
'Longitude' => $_POST['longitude'],
'City' => $_POST['City'],
'Image1' => $_POST['Image1'],
'Image2' => $_POST['Image2'],
'Image3' => $_POST['Image3'],
'Hash' => md5(time()),
);
$wpdb->insert('Reparation', $register);
if ($wpdb->insert_id) {
$message = file_get_contents(__DIR__ . '/templates/reparation.html');
$message = str_replace('%TITLE%', $_POST['Title'], $message);
$message = str_replace('%DESCRIPTION%', $_POST['Description'], $message);
$message = str_replace('%BRAND%', $_POST['Merk'], $message);
$message = str_replace('%MODEL%', $_POST['Handelsbenaming'], $message);
$message = str_replace('%LICENSEPLATE%', $_POST['open_rdw-921'], $message);
$message = str_replace('%NAME%', $_POST['Name'], $message);
$message = str_replace('%EMAIL%', $_POST['Email'], $message);
$message = str_replace('%PHONE%', $_POST['Phone'], $message);
$headers = 'From: Automaker.nl <[email protected]>' . "\r\n";
wp_mail($_POST['Email'], 'Uw reparatie op Automaker.nl is succesvol verzonden', $message, $headers);
$success = "Bedankt! Uw reparatie is succesvol verstuurd. U zult snel offertes ontvangen.";
$user_query = new WP_User_Query( array( 'role' => 'aamrole_5404aaeed25c7' ) );
$Allbrands = $wpdb->get_results("SELECT Allbrands FROM wp_users", OBJECT);
/*$brand1 = $wpdb->get_var("SELECT Merk1 FROM wp_users", OBJECT);
$brand2 = $wpdb->get_var("SELECT Merk2 FROM wp_users", OBJECT);
$brand3 = $wpdb->get_var("SELECT Merk FROM Reparation", OBJECT);*/
if ( ! empty( $user_query->results ) ) {
foreach ($user_query->results as $user) {
$point1 = array('lat' => $_POST['latitude'], 'long' => $_POST['longitude']);
$point2 = array('lat' => $user->latitude, 'long' => $user->longitude);
$retvalDistance = $distance->getDistance($point1['lat'], $point1['long'], $point2['lat'], $point2['long']);
if ($retvalDistance <= $automaker['application']['distance'] && $Allbrands[0]->Allbrands == 1) {
$message = file_get_contents(__DIR__ . '/templates/reparation_garage.html');
$message = str_replace('%TITLE%', $_POST['Title'], $message);
$message = str_replace('%GARAGE%', $user->company_name, $message);
$headers = 'From: Automaker.nl <[email protected]>' . "\r\n";
wp_mail($user->user_email, 'Er is een nieuwe reparatie geplaatst op Automaker.nl!', $message, $headers);
}
elseif ($retvalDistance <= $automaker['application']['distance'] && $user->Merk1 == $_POST->Merk) {
$message = file_get_contents(__DIR__ . '/templates/reparation_garage.html');
$message = str_replace('%TITLE%', $_POST['Title'], $message);
$message = str_replace('%GARAGE%', $user->company_name, $message);
$headers = 'From: Automaker.nl <[email protected]>' . "\r\n";
wp_mail($user->user_email, 'Er is een nieuwe reparatie geplaatst op Automaker.nl!', $message, $headers);
}
elseif ($retvalDistance <= $automaker['application']['distance'] && $user->Merk2 == $_POST->Merk) {
$message = file_get_contents(__DIR__ . '/templates/reparation_garage.html');
$message = str_replace('%TITLE%', $_POST['Title'], $message);
$message = str_replace('%GARAGE%', $user->company_name, $message);
$headers = 'From: Automaker.nl <[email protected]>' . "\r\n";
wp_mail($user->user_email, 'Er is een nieuwe reparatie geplaatst op Automaker.nl!', $message, $headers);
}
$pass = wp_generate_password ( 12, false );
$register = array(
'Title' => $_POST['Title'],
'Zipcode' => $_POST['Zipcode'],
'Description' => $_POST['Description'],
'Merk' => $_POST['Merk'],
'Handelsbenaming' => $_POST['Handelsbenaming'],
'LicensePlate' => $_POST['open_rdw-921'],
'Name' => $_POST['Name'],
'Phone' => $_POST['Phone'],
'Email' => $_POST['Email'],
'Latitude' => $_POST['latitude'],
'Longitude' => $_POST['longitude'],
'City' => $_POST['City'],
'Image1' => $_POST['Image1'],
'Image2' => $_POST['Image2'],
'Image3' => $_POST['Image3'],
'Hash' => md5(time()),
);
$wpdb->insert('Reparation', $register);
if ($wpdb->insert_id) {
$message = file_get_contents(__DIR__ . '/templates/reparation.html');
$message = str_replace('%TITLE%', $_POST['Title'], $message);
$message = str_replace('%DESCRIPTION%', $_POST['Description'], $message);
$message = str_replace('%BRAND%', $_POST['Merk'], $message);
$message = str_replace('%MODEL%', $_POST['Handelsbenaming'], $message);
$message = str_replace('%LICENSEPLATE%', $_POST['open_rdw-921'], $message);
$message = str_replace('%NAME%', $_POST['Name'], $message);
$message = str_replace('%EMAIL%', $_POST['Email'], $message);
$message = str_replace('%PHONE%', $_POST['Phone'], $message);
$headers = 'From: Automaker.nl <[email protected]>' . "\r\n";
wp_mail($_POST['Email'], 'Uw reparatie op Automaker.nl is succesvol verzonden', $message, $headers);
$success = "Bedankt! Uw reparatie is succesvol verstuurd. U zult snel offertes ontvangen.";
$user_query = new WP_User_Query( array( 'role' => 'aamrole_5404aaeed25c7' ) );
$Allbrands = $wpdb->get_results("SELECT Allbrands FROM wp_users", OBJECT);
/*$brand1 = $wpdb->get_var("SELECT Merk1 FROM wp_users", OBJECT);
$brand2 = $wpdb->get_var("SELECT Merk2 FROM wp_users", OBJECT);
$brand3 = $wpdb->get_var("SELECT Merk FROM Reparation", OBJECT);*/
if ( ! empty( $user_query->results ) ) {
foreach ($user_query->results as $user) {
$point1 = array('lat' => $_POST['latitude'], 'long' => $_POST['longitude']);
$point2 = array('lat' => $user->latitude, 'long' => $user->longitude);
$retvalDistance = $distance->getDistance($point1['lat'], $point1['long'], $point2['lat'], $point2['long']);
if ($retvalDistance <= $automaker['application']['distance'] && $Allbrands[0]->Allbrands == 1) {
$message = file_get_contents(__DIR__ . '/templates/reparation_garage.html');
$message = str_replace('%TITLE%', $_POST['Title'], $message);
$message = str_replace('%GARAGE%', $user->company_name, $message);
$headers = 'From: Automaker.nl <[email protected]>' . "\r\n";
wp_mail($user->user_email, 'Er is een nieuwe reparatie geplaatst op Automaker.nl!', $message, $headers);
}
elseif ($retvalDistance <= $automaker['application']['distance'] && $user->Merk1 == $_POST->Merk) {
$message = file_get_contents(__DIR__ . '/templates/reparation_garage.html');
$message = str_replace('%TITLE%', $_POST['Title'], $message);
$message = str_replace('%GARAGE%', $user->company_name, $message);
$headers = 'From: Automaker.nl <[email protected]>' . "\r\n";
wp_mail($user->user_email, 'Er is een nieuwe reparatie geplaatst op Automaker.nl!', $message, $headers);
}
elseif ($retvalDistance <= $automaker['application']['distance'] && $user->Merk2 == $_POST->Merk) {
$message = file_get_contents(__DIR__ . '/templates/reparation_garage.html');
$message = str_replace('%TITLE%', $_POST['Title'], $message);
$message = str_replace('%GARAGE%', $user->company_name, $message);
$headers = 'From: Automaker.nl <[email protected]>' . "\r\n";
wp_mail($user->user_email, 'Er is een nieuwe reparatie geplaatst op Automaker.nl!', $message, $headers);
}
Ik laat nu ook gelijk het eerste gedeelte zien, men krijgt ook hier een bepaalde role indien men een offerte verstuurd. Men hoeft namelijk niet in te loggen.
Ik heb de get_var even uitgeschakeld met /* .... */
Ik probeer nu de $user en $_POST te gebruiken aangezien deze gebruikt worden voor de garage en de aanvrager. Dit zal dus aan moeten geven dat het om deze bepaalde garage gaat.
Helaas lukt het niet met ==, is er een andere optie om deze te vergelijken?
Toevoeging op 27/01/2015 16:04:54:
Het werkt nu, door het doorvragen ben ik uiteindelijk achter het probleem gekomen.
Ik vergelijk nu het merk dat gekozen is door de garages met de ingevulde input field.
Ik heb nu testen gedraaid met merken die ik wel en merken die ik niet in mijn lijst heb staan, werkt als een kieviet. Bedankt Thomas van den Heuvel en Ward van der Put voor jullie inzet.
Dit is mijn resultaat:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
require_once('wp-load.php');
require_once 'classes/GoogleMapsApi.php';
require_once 'classes/Upload.php';
$error = array();
$success = "";
require_once 'classes/Brands.php';
require_once 'classes/Models.php';
require_once 'classes/Distance.php';
$brands = new Brands();
$models = new Models();
$distance = new Distance();
if ($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['submit_reparation'])) {
$_POST['Image1'] = '';
$_POST['Image2'] = '';
$_POST['Image3'] = '';
if(!empty($_FILES['Image1'])) {
$upload = new Upload();
$upload->setDestination(__DIR__ . '/uploads');
$upload->setFilename($_FILES['Image1']['name']);
$upload->setPromission(644);
$_POST['Image1'] = $upload->saveImage($_FILES['Image1']['tmp_name']);
}
if(!empty($_FILES['Image2'])) {
$upload = new Upload();
$upload->setDestination(__DIR__ . '/uploads');
$upload->setFilename($_FILES['Image2']['name']);
$upload->setPromission(644);
$_POST['Image2'] = $upload->saveImage($_FILES['Image2']['tmp_name']);
}
if(!empty($_FILES['Image3'])) {
$upload = new Upload();
$upload->setDestination(__DIR__ . '/uploads');
$upload->setFilename($_FILES['Image3']['name']);
$upload->setPromission(644);
$_POST['Image3'] = $upload->saveImage($_FILES['Image3']['tmp_name']);
}
if(empty($_POST['Title'])) {
$error[] = "U heeft geen titel ingevuld";
}
if(empty($_POST['Description'])) {
$error[] = "U heeft geen reparatie omschrijving ingevuld";
}
if(empty($_POST['Merk'])) {
$error[] = "U heeft geen auto merk geselecteerd";
}
if(empty($_POST['Handelsbenaming'])) {
$error[] = "U heeft geen model geselecteerd";
}
if(empty($_POST['open_rdw-921'])) {
$error[] = "U heeft geen kenteken ingevuld";
}
if(empty($_POST['Name'])) {
$error[] = "U heeft geen naam ingevuld";
}
if(empty($_POST['Email'])) {
$error[] = "U heeft geen e-mailadres ingevuld";
}
if(!filter_var($_POST['Email'], FILTER_VALIDATE_EMAIL)) {
$error[] = "U heeft geen correct e-mailadres ingevuld";
}
if(empty($_POST['Zipcode'])) {
$error[] = "U heeft geen postcode ingevuld";
}
elseif(empty($_POST['latitude'])) {
$error[] = "U heeft geen correcte postcode ingevuld";
}
elseif(empty($_POST['longitude'])) {
$error[] = "U heeft geen correcte postcode ingevuld";
}
elseif(!preg_match('/^[1-9]{1}[0-9]{3}\s[a-zA-Z]{2}$/', $_POST['Zipcode'])){
$error[] = "U heeft geen correcte postcode ingevuld";
}
if (count($error) <= 0) {
$pass = wp_generate_password ( 12, false );
$register = array(
'Title' => $_POST['Title'],
'Zipcode' => $_POST['Zipcode'],
'Description' => $_POST['Description'],
'Merk' => $_POST['Merk'],
'Handelsbenaming' => $_POST['Handelsbenaming'],
'LicensePlate' => $_POST['open_rdw-921'],
'Name' => $_POST['Name'],
'Phone' => $_POST['Phone'],
'Email' => $_POST['Email'],
'Latitude' => $_POST['latitude'],
'Longitude' => $_POST['longitude'],
'City' => $_POST['City'],
'Image1' => $_POST['Image1'],
'Image2' => $_POST['Image2'],
'Image3' => $_POST['Image3'],
'Hash' => md5(time()),
);
$wpdb->insert('Reparation', $register);
if ($wpdb->insert_id) {
$message = file_get_contents(__DIR__ . '/templates/reparation.html');
$message = str_replace('%TITLE%', $_POST['Title'], $message);
$message = str_replace('%DESCRIPTION%', $_POST['Description'], $message);
$message = str_replace('%BRAND%', $_POST['Merk'], $message);
$message = str_replace('%MODEL%', $_POST['Handelsbenaming'], $message);
$message = str_replace('%LICENSEPLATE%', $_POST['open_rdw-921'], $message);
$message = str_replace('%NAME%', $_POST['Name'], $message);
$message = str_replace('%EMAIL%', $_POST['Email'], $message);
$message = str_replace('%PHONE%', $_POST['Phone'], $message);
$headers = 'From: Automaker.nl <[email protected]>' . "\r\n";
wp_mail($_POST['Email'], 'Uw reparatie op Automaker.nl is succesvol verzonden', $message, $headers);
$success = "Bedankt! Uw reparatie is succesvol verstuurd. U zult snel offertes ontvangen.";
$user_query = new WP_User_Query( array( 'role' => 'aamrole_5404aaeed25c7' ) );
$Allbrands = $wpdb->get_results("SELECT Allbrands FROM wp_users", OBJECT);
if ( ! empty( $user_query->results ) ) {
foreach ($user_query->results as $user) {
$point1 = array('lat' => $_POST['latitude'], 'long' => $_POST['longitude']);
$point2 = array('lat' => $user->latitude, 'long' => $user->longitude);
$retvalDistance = $distance->getDistance($point1['lat'], $point1['long'], $point2['lat'], $point2['long']);
if ($retvalDistance <= $automaker['application']['distance'] && $Allbrands[0]->Allbrands == 1) {
$message = file_get_contents(__DIR__ . '/templates/reparation_garage.html');
$message = str_replace('%TITLE%', $_POST['Title'], $message);
$message = str_replace('%GARAGE%', $user->company_name, $message);
$headers = 'From: Automaker.nl <[email protected]>' . "\r\n";
wp_mail($user->user_email, 'Er is een nieuwe reparatie geplaatst op Automaker.nl!', $message, $headers);
}
elseif ($retvalDistance <= $automaker['application']['distance'] && $user->Merk1 == $_POST['Merk']) {
$message = file_get_contents(__DIR__ . '/templates/reparation_garage.html');
$message = str_replace('%TITLE%', $_POST['Title'], $message);
$message = str_replace('%GARAGE%', $user->company_name, $message);
$headers = 'From: Automaker.nl <[email protected]>' . "\r\n";
wp_mail($user->user_email, 'Er is een nieuwe reparatie geplaatst op Automaker.nl!', $message, $headers);
}
elseif ($retvalDistance <= $automaker['application']['distance'] && $user->Merk2 == $_POST['Merk']) {
$message = file_get_contents(__DIR__ . '/templates/reparation_garage.html');
$message = str_replace('%TITLE%', $_POST['Title'], $message);
$message = str_replace('%GARAGE%', $user->company_name, $message);
$headers = 'From: Automaker.nl <[email protected]>' . "\r\n";
wp_mail($user->user_email, 'Er is een nieuwe reparatie geplaatst op Automaker.nl!', $message, $headers);
}
}
}
}
}
}
?>
require_once 'classes/GoogleMapsApi.php';
require_once 'classes/Upload.php';
$error = array();
$success = "";
require_once 'classes/Brands.php';
require_once 'classes/Models.php';
require_once 'classes/Distance.php';
$brands = new Brands();
$models = new Models();
$distance = new Distance();
if ($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['submit_reparation'])) {
$_POST['Image1'] = '';
$_POST['Image2'] = '';
$_POST['Image3'] = '';
if(!empty($_FILES['Image1'])) {
$upload = new Upload();
$upload->setDestination(__DIR__ . '/uploads');
$upload->setFilename($_FILES['Image1']['name']);
$upload->setPromission(644);
$_POST['Image1'] = $upload->saveImage($_FILES['Image1']['tmp_name']);
}
if(!empty($_FILES['Image2'])) {
$upload = new Upload();
$upload->setDestination(__DIR__ . '/uploads');
$upload->setFilename($_FILES['Image2']['name']);
$upload->setPromission(644);
$_POST['Image2'] = $upload->saveImage($_FILES['Image2']['tmp_name']);
}
if(!empty($_FILES['Image3'])) {
$upload = new Upload();
$upload->setDestination(__DIR__ . '/uploads');
$upload->setFilename($_FILES['Image3']['name']);
$upload->setPromission(644);
$_POST['Image3'] = $upload->saveImage($_FILES['Image3']['tmp_name']);
}
if(empty($_POST['Title'])) {
$error[] = "U heeft geen titel ingevuld";
}
if(empty($_POST['Description'])) {
$error[] = "U heeft geen reparatie omschrijving ingevuld";
}
if(empty($_POST['Merk'])) {
$error[] = "U heeft geen auto merk geselecteerd";
}
if(empty($_POST['Handelsbenaming'])) {
$error[] = "U heeft geen model geselecteerd";
}
if(empty($_POST['open_rdw-921'])) {
$error[] = "U heeft geen kenteken ingevuld";
}
if(empty($_POST['Name'])) {
$error[] = "U heeft geen naam ingevuld";
}
if(empty($_POST['Email'])) {
$error[] = "U heeft geen e-mailadres ingevuld";
}
if(!filter_var($_POST['Email'], FILTER_VALIDATE_EMAIL)) {
$error[] = "U heeft geen correct e-mailadres ingevuld";
}
if(empty($_POST['Zipcode'])) {
$error[] = "U heeft geen postcode ingevuld";
}
elseif(empty($_POST['latitude'])) {
$error[] = "U heeft geen correcte postcode ingevuld";
}
elseif(empty($_POST['longitude'])) {
$error[] = "U heeft geen correcte postcode ingevuld";
}
elseif(!preg_match('/^[1-9]{1}[0-9]{3}\s[a-zA-Z]{2}$/', $_POST['Zipcode'])){
$error[] = "U heeft geen correcte postcode ingevuld";
}
if (count($error) <= 0) {
$pass = wp_generate_password ( 12, false );
$register = array(
'Title' => $_POST['Title'],
'Zipcode' => $_POST['Zipcode'],
'Description' => $_POST['Description'],
'Merk' => $_POST['Merk'],
'Handelsbenaming' => $_POST['Handelsbenaming'],
'LicensePlate' => $_POST['open_rdw-921'],
'Name' => $_POST['Name'],
'Phone' => $_POST['Phone'],
'Email' => $_POST['Email'],
'Latitude' => $_POST['latitude'],
'Longitude' => $_POST['longitude'],
'City' => $_POST['City'],
'Image1' => $_POST['Image1'],
'Image2' => $_POST['Image2'],
'Image3' => $_POST['Image3'],
'Hash' => md5(time()),
);
$wpdb->insert('Reparation', $register);
if ($wpdb->insert_id) {
$message = file_get_contents(__DIR__ . '/templates/reparation.html');
$message = str_replace('%TITLE%', $_POST['Title'], $message);
$message = str_replace('%DESCRIPTION%', $_POST['Description'], $message);
$message = str_replace('%BRAND%', $_POST['Merk'], $message);
$message = str_replace('%MODEL%', $_POST['Handelsbenaming'], $message);
$message = str_replace('%LICENSEPLATE%', $_POST['open_rdw-921'], $message);
$message = str_replace('%NAME%', $_POST['Name'], $message);
$message = str_replace('%EMAIL%', $_POST['Email'], $message);
$message = str_replace('%PHONE%', $_POST['Phone'], $message);
$headers = 'From: Automaker.nl <[email protected]>' . "\r\n";
wp_mail($_POST['Email'], 'Uw reparatie op Automaker.nl is succesvol verzonden', $message, $headers);
$success = "Bedankt! Uw reparatie is succesvol verstuurd. U zult snel offertes ontvangen.";
$user_query = new WP_User_Query( array( 'role' => 'aamrole_5404aaeed25c7' ) );
$Allbrands = $wpdb->get_results("SELECT Allbrands FROM wp_users", OBJECT);
if ( ! empty( $user_query->results ) ) {
foreach ($user_query->results as $user) {
$point1 = array('lat' => $_POST['latitude'], 'long' => $_POST['longitude']);
$point2 = array('lat' => $user->latitude, 'long' => $user->longitude);
$retvalDistance = $distance->getDistance($point1['lat'], $point1['long'], $point2['lat'], $point2['long']);
if ($retvalDistance <= $automaker['application']['distance'] && $Allbrands[0]->Allbrands == 1) {
$message = file_get_contents(__DIR__ . '/templates/reparation_garage.html');
$message = str_replace('%TITLE%', $_POST['Title'], $message);
$message = str_replace('%GARAGE%', $user->company_name, $message);
$headers = 'From: Automaker.nl <[email protected]>' . "\r\n";
wp_mail($user->user_email, 'Er is een nieuwe reparatie geplaatst op Automaker.nl!', $message, $headers);
}
elseif ($retvalDistance <= $automaker['application']['distance'] && $user->Merk1 == $_POST['Merk']) {
$message = file_get_contents(__DIR__ . '/templates/reparation_garage.html');
$message = str_replace('%TITLE%', $_POST['Title'], $message);
$message = str_replace('%GARAGE%', $user->company_name, $message);
$headers = 'From: Automaker.nl <[email protected]>' . "\r\n";
wp_mail($user->user_email, 'Er is een nieuwe reparatie geplaatst op Automaker.nl!', $message, $headers);
}
elseif ($retvalDistance <= $automaker['application']['distance'] && $user->Merk2 == $_POST['Merk']) {
$message = file_get_contents(__DIR__ . '/templates/reparation_garage.html');
$message = str_replace('%TITLE%', $_POST['Title'], $message);
$message = str_replace('%GARAGE%', $user->company_name, $message);
$headers = 'From: Automaker.nl <[email protected]>' . "\r\n";
wp_mail($user->user_email, 'Er is een nieuwe reparatie geplaatst op Automaker.nl!', $message, $headers);
}
}
}
}
}
}
?>
Dus dat zou dan een hele lange code worden ;)
Goed normaliseren is ook de enige acceptabele oplossing om honderd merknamen aan honderden garagebedrijven en duizenden auto's te koppelen.
Overigens zou je nog kunnen werken met het kenteken als enige input: de voertuiggegevens haal je dan op met een open API van de RDW. Gebruikersvriendelijker, professioneler en betrouwbaarder.
http://opendatanederland.org/nl/dataset/voertuiggegevens-rdw
https://data.overheid.nl/data/dataset/voertuig-open-data---rdw
Maar hoe je het ook went of keert, dit is nu gelukt.
Wat onze website nu doet is de instellingen van garages in de MySQL database vergelijken met de input van RDW door middel van een ingevulde kenteken.
Missie volbracht, nogmaals iedereen bedankt voor het meedenken.