Bestelformulier werkt niet
ik ben net begonnen met het leren van PHP. Ik heb een bestelformulier gemaakt, maar als ik het wil versturen, dan komt er geen mail binnen op mijn mailadres [email protected]
Wanneer ik op versturen klik in het formulier, krijg ik wel de bedankt-pagina te zien. Verder geen foutmelding.
Is er iemand die mij kan helpen? Alvast erg bedankt! Want ik zie het niet meer.
Dit is het script met de naam sendresults2.php:
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
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
<?php
//--------------------------Set these paramaters--------------------------
// Subject of email sent to you.
$subject = 'Resultaten van het contactformulier';
// Your email address. This is where the form information will be sent.
$emailadd = '[email protected]';
// Where to redirect after form is processed.
$url = 'http://www.invanobouw.nl/pages/bedankt.html';
function died($error) {
// je foutbericht staat hier
echo "Het spijt ons, vanwege een fout is het formulier niet verzonden. ";
echo "Deze fout(en) tonen zich hieronder.<br /><br />";
echo $error."<br /><br />";
echo "Ga aub terug om de velden correct in te vullen.<br /><br />";
die();
}
// validation expected data exists
if(!isset($_POST['Voornaam']) ||
!isset($_POST['Achternaam']) ||
!isset($_POST['Email']) ||
!isset($_POST['Telefoon'])) {
died('Het spijt ons, er is een probleem opgetreden bij het verzenden van het formulier.');
}
$Voornaam = $_POST['Voornaam']; // verplicht
$Achternaam = $_POST['Achternaam']; // verplicht
$Email = $_POST['Email']; // verplicht
$Telefoon = $_POST['Telefoon']; // verplicht
$error_message = "";
$email_exp = "^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$";
if(!eregi($email_exp,$Email)) {
$error_message .= 'Het emailadres is niet geldig.<br />';
}
$string_exp = "^[a-z .'-]+$";
if(!eregi($string_exp,$Voornaam)) {
$error_message .= 'De voornaam is niet geldig.<br />';
}
if(!eregi($string_exp,$Achternaam)) {
$error_message .= 'De achternaam is niet geldig.<br />';
}
$string_exp = "^[0-9 .-]+$";
if(!eregi($string_exp,$Telefoon)) {
$error_message .= 'Het telefoonnummer is niet geldig.<br />';
}
if(strlen($error_message) > 0) {
died($error_message);
}
$email_message = "Gegevens formulier.\n\n";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "Voornaam: ".clean_string($Voornaam)."\n";
$email_message .= "Achternaam: ".clean_string($Achternaam)."\n";
$email_message .= "Email: ".clean_string($Email)."\n";
$email_message .= "Telefoon: ".clean_string($Telefoon)."\n";
// --------------------------Do not edit below this line--------------------------
$text = "Resultaten van het contactformulier:\n\n";
$space = ' ';
$line = '
';
foreach ($_POST as $key => $value)
{
if ($req == '1')
{
if ($value == '')
{echo "$key is empty";die;}
}
$j = strlen($key);
if ($j >= 20)
{echo "Name of form element $key cannot be longer than 20 characters";die;}
$j = 20 - $j;
for ($i = 1; $i <= $j; $i++)
{$space .= ' ';}
$value = str_replace('\n', "$line", $value);
$conc = "{$key}:$space{$value}$line";
$text .= $conc;
$space = ' ';
}
mail($emailadd, $subject, $text, 'From: '.$emailadd.'');
echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL='.$url.'">';
?>
//--------------------------Set these paramaters--------------------------
// Subject of email sent to you.
$subject = 'Resultaten van het contactformulier';
// Your email address. This is where the form information will be sent.
$emailadd = '[email protected]';
// Where to redirect after form is processed.
$url = 'http://www.invanobouw.nl/pages/bedankt.html';
function died($error) {
// je foutbericht staat hier
echo "Het spijt ons, vanwege een fout is het formulier niet verzonden. ";
echo "Deze fout(en) tonen zich hieronder.<br /><br />";
echo $error."<br /><br />";
echo "Ga aub terug om de velden correct in te vullen.<br /><br />";
die();
}
// validation expected data exists
if(!isset($_POST['Voornaam']) ||
!isset($_POST['Achternaam']) ||
!isset($_POST['Email']) ||
!isset($_POST['Telefoon'])) {
died('Het spijt ons, er is een probleem opgetreden bij het verzenden van het formulier.');
}
$Voornaam = $_POST['Voornaam']; // verplicht
$Achternaam = $_POST['Achternaam']; // verplicht
$Email = $_POST['Email']; // verplicht
$Telefoon = $_POST['Telefoon']; // verplicht
$error_message = "";
$email_exp = "^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$";
if(!eregi($email_exp,$Email)) {
$error_message .= 'Het emailadres is niet geldig.<br />';
}
$string_exp = "^[a-z .'-]+$";
if(!eregi($string_exp,$Voornaam)) {
$error_message .= 'De voornaam is niet geldig.<br />';
}
if(!eregi($string_exp,$Achternaam)) {
$error_message .= 'De achternaam is niet geldig.<br />';
}
$string_exp = "^[0-9 .-]+$";
if(!eregi($string_exp,$Telefoon)) {
$error_message .= 'Het telefoonnummer is niet geldig.<br />';
}
if(strlen($error_message) > 0) {
died($error_message);
}
$email_message = "Gegevens formulier.\n\n";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "Voornaam: ".clean_string($Voornaam)."\n";
$email_message .= "Achternaam: ".clean_string($Achternaam)."\n";
$email_message .= "Email: ".clean_string($Email)."\n";
$email_message .= "Telefoon: ".clean_string($Telefoon)."\n";
// --------------------------Do not edit below this line--------------------------
$text = "Resultaten van het contactformulier:\n\n";
$space = ' ';
$line = '
';
foreach ($_POST as $key => $value)
{
if ($req == '1')
{
if ($value == '')
{echo "$key is empty";die;}
}
$j = strlen($key);
if ($j >= 20)
{echo "Name of form element $key cannot be longer than 20 characters";die;}
$j = 20 - $j;
for ($i = 1; $i <= $j; $i++)
{$space .= ' ';}
$value = str_replace('\n', "$line", $value);
$conc = "{$key}:$space{$value}$line";
$text .= $conc;
$space = ' ';
}
mail($emailadd, $subject, $text, 'From: '.$emailadd.'');
echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL='.$url.'">';
?>
En dit is de bijbehorende HTML in de pagina:
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
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
<form action="http://www.invanobouw.nl/sendresults2.php" method="post" name="Contact-/bestformulier" class="contact-bestformulier" id="Contact-/bestformulier" onsubmit="return formulierTest(this);">
<strong>Mijn voorkeur gaat uit naar</strong><br />
<br />
Soort installatie:<br />
<select name="Soort installatie" id="Soort installatie">
<option>Zonnepanelen</option>
<option>Boilersysteem</option>
<option>Zonnepanelen en boilersysteem</option>
<option>Powerglas Bipv systeem</option>
<option>Overige (bouw)</option>
</select>
<br />
<br />
<img src="../images/groene_lijn.jpg" width="425" height="4" /> <span class="bestel_cursief">Invullen wanneer u kiest voor zonnepanelen en/of boilersysteem:</span><br />
<br />
Type dak:<br />
<select name="Type dak" id="Type dak">
<option>Schuin dak</option>
<option>Plat dak</option>
</select>
<br />
<br />
Selecteer het aantal panelen:<br />
<select name="Aantal panelen" id="Aantal panelen">
<option>6</option>
<option>8</option>
<option>9</option>
<option>10</option>
<option>12</option>
<option>14</option>
<option>15</option>
<option>18</option>
<option>24</option>
</select>
<br />
<br />
<span class="bestel_cursief">Wanneer u kiest voor een boilersysteem:</span><br />
<br />
Aantal gezinsleden
<input name="Aantal gezinsleden" type="text" id="Aantal gezinsleden" size="27" />
<br />
<br />
<img src="../images/groene_lijn.jpg" alt="" width="425" height="4" /><br />
<br />
<span class="bestel_cursief">Invullen wanneer u kiest voor Overige (bouw):</span><br />
<textarea name="Overige (bouw)" id="Overige (bouw)" cols="45" rows="5"></textarea>
<br />
<br />
<img src="../images/groene_lijn.jpg" alt="" width="425" height="4" /><br />
<br />
Gewenste periode van uitvoering<br />
<textarea name="Uitvoering" cols="45" id="Uitvoering"></textarea>
<br />
<br />
Natuurlijk zijn er ook andere samenstellingen mogelijk. <br />
Informeer naar de mogelijkheden. <br />
<br />
<br />
<strong>Vul hier uw gegevens in</strong><br />
<br />
<table width="425" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="163">Voornaam</td>
<td width="262"><input name="Voornaam" type="text" id="Voornaam" size="37" /></td>
</tr>
<tr>
<td>Achternaam</td>
<td><input name="Achternaam" type="text" id="Achternaam" size="37" /></td>
</tr>
<tr>
<td>Adres</td>
<td><input name="Adres" type="text" id="Adres" size="37" /></td>
</tr>
<tr>
<td>Postcode / Woonplaats</td>
<td><input name="Woonplaats" type="text" id="Woonplaats" size="37" /></td>
</tr>
<tr>
<td>E-mailadres</td>
<td><input name="Email" type="text" id="Email" size="37" /></td>
</tr>
<tr>
<td>Telefoon / Mobiel</td>
<td><input name="Telefoon" type="text" id="Telefoon" size="37" /></td>
</tr>
</table>
<br />
<br />
<label for="Opmerkingen">Bent u een
<input type="radio" name="radio" id="bedrijf" value="bedrijf" />
bedrijf of
<input type="radio" name="radio" id="particulier" value="particulier" style="padding-left: 5px" />
particulier<br />
<br />
<br />
Opmerkingen</strong></label>
<br />
Geeft u hier uw jaarverbruik in kw/uur en het te gebruiken dakoppervlakte per m2 of plaats uw eigen opmerking.<br />
<textarea name="Opmerkingen" cols="45" rows="5" id="Opmerkingen"></textarea>
<br />
<br />
<input type="submit" name="Verzend" id="Verzend" value="Verzenden" />
<br />
</form>
<strong>Mijn voorkeur gaat uit naar</strong><br />
<br />
Soort installatie:<br />
<select name="Soort installatie" id="Soort installatie">
<option>Zonnepanelen</option>
<option>Boilersysteem</option>
<option>Zonnepanelen en boilersysteem</option>
<option>Powerglas Bipv systeem</option>
<option>Overige (bouw)</option>
</select>
<br />
<br />
<img src="../images/groene_lijn.jpg" width="425" height="4" /> <span class="bestel_cursief">Invullen wanneer u kiest voor zonnepanelen en/of boilersysteem:</span><br />
<br />
Type dak:<br />
<select name="Type dak" id="Type dak">
<option>Schuin dak</option>
<option>Plat dak</option>
</select>
<br />
<br />
Selecteer het aantal panelen:<br />
<select name="Aantal panelen" id="Aantal panelen">
<option>6</option>
<option>8</option>
<option>9</option>
<option>10</option>
<option>12</option>
<option>14</option>
<option>15</option>
<option>18</option>
<option>24</option>
</select>
<br />
<br />
<span class="bestel_cursief">Wanneer u kiest voor een boilersysteem:</span><br />
<br />
Aantal gezinsleden
<input name="Aantal gezinsleden" type="text" id="Aantal gezinsleden" size="27" />
<br />
<br />
<img src="../images/groene_lijn.jpg" alt="" width="425" height="4" /><br />
<br />
<span class="bestel_cursief">Invullen wanneer u kiest voor Overige (bouw):</span><br />
<textarea name="Overige (bouw)" id="Overige (bouw)" cols="45" rows="5"></textarea>
<br />
<br />
<img src="../images/groene_lijn.jpg" alt="" width="425" height="4" /><br />
<br />
Gewenste periode van uitvoering<br />
<textarea name="Uitvoering" cols="45" id="Uitvoering"></textarea>
<br />
<br />
Natuurlijk zijn er ook andere samenstellingen mogelijk. <br />
Informeer naar de mogelijkheden. <br />
<br />
<br />
<strong>Vul hier uw gegevens in</strong><br />
<br />
<table width="425" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="163">Voornaam</td>
<td width="262"><input name="Voornaam" type="text" id="Voornaam" size="37" /></td>
</tr>
<tr>
<td>Achternaam</td>
<td><input name="Achternaam" type="text" id="Achternaam" size="37" /></td>
</tr>
<tr>
<td>Adres</td>
<td><input name="Adres" type="text" id="Adres" size="37" /></td>
</tr>
<tr>
<td>Postcode / Woonplaats</td>
<td><input name="Woonplaats" type="text" id="Woonplaats" size="37" /></td>
</tr>
<tr>
<td>E-mailadres</td>
<td><input name="Email" type="text" id="Email" size="37" /></td>
</tr>
<tr>
<td>Telefoon / Mobiel</td>
<td><input name="Telefoon" type="text" id="Telefoon" size="37" /></td>
</tr>
</table>
<br />
<br />
<label for="Opmerkingen">Bent u een
<input type="radio" name="radio" id="bedrijf" value="bedrijf" />
bedrijf of
<input type="radio" name="radio" id="particulier" value="particulier" style="padding-left: 5px" />
particulier<br />
<br />
<br />
Opmerkingen</strong></label>
<br />
Geeft u hier uw jaarverbruik in kw/uur en het te gebruiken dakoppervlakte per m2 of plaats uw eigen opmerking.<br />
<textarea name="Opmerkingen" cols="45" rows="5" id="Opmerkingen"></textarea>
<br />
<br />
<input type="submit" name="Verzend" id="Verzend" value="Verzenden" />
<br />
</form>
Graag in het vervolg bij code, [code] [/code] tags gebruiken.[/modedit]
Gewijzigd op 08/03/2013 13:15:57 door Bas IJzelendoorn
Niet meer gebruiken dus.
En ik mis een foutafhandeling op je mail() functie.
- SanThe - op 08/03/2013 13:14:53:
De function eregi() is antiek.
Niet meer gebruiken dus.
Niet meer gebruiken dus.
Wat kan ik daar dan voor in de plaats gebruiken?
preg_match().
Hoe schrijf ik zo'n foutafhandeling op mijn mailfunctie?
Gebruik je localhost?
Code (php)
Pseudocode, je moet dus de bewuste regel even herschrijven....
Nee alles gaat via de server waar de website gehost is, bedoel je dat?
oke, ik zit bij 000webhost.com en bij mij doet mail() het op dit moment ook niet. Misschien is er iets met de mailserver.
Het komt nu goed binnen.
Ik heb alleen de foutafhandeling op mijn mailfunctie nog niet toegevoegd, maar hij werkt iig wel.
Zal ik het goede script nog plaatsen, of is dat niet nodig?
mailheaders dat is altijd beter dan alleen een From.
Gebruik goede OK, dank je wel voor de info allemaal!