Fout in contactformulier, maar kan hem niet vinden
bij de verplichte velden krijg je altijd de melding dat je die niet goed ingevuld hebt, terwijl dat wel zo is.
Als ik geen verplichte velden neem, dus alles 'vrijwillig', wordt het formulier wel verstuurd, maar zonder wat de gebruiker ingevuld heeft.
Als iemand mij zou kunnen helpen, gaarne!
de html:
<form name="contactform" method="post" action="/contactform.php">
<table width="650px" cellspacing="5">
<tr>
<td valign="top">
<label for="naam">Naam *</label>
</td>
<td valign="top">
<input type="text" name="naam" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top"">
<label for="bedrijfsnaam">Bedrijfsnaam </label>
</td>
<td valign="top">
<input type="text" name="bedrijfsnaam" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="email">E-mail Adres *</label>
</td>
<td valign="top">
<input type="text" name="email" maxlength="80" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="telefoon">Telefoonnummer</label>
</td>
<td valign="top">
<input type="text" name="telefoon" maxlength="30" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="bericht">Bericht *</label>
</td>
<td valign="top">
<textarea name="bericht" maxlength="1000" cols="50" rows="6"></textarea>
</td>
</tr>
<tr>
<td colspan="2" style="text-align:center">
<input type="submit" value="Verstuur">
<p><br /> velden met een * zijn verplicht </p>
</td>
</tr>
</table>
</form>
het php script:
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
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
<?php
if(isset($_POST['email'])) {
// EDIT THE 2 LINES BELOW AS REQUIRED
$email_to = "[email protected]";
$email_subject = "bericht via website";
function died($error) {
// your error code can go here
echo "Sorry, het formulier is niet correct ingevuld. ";
echo "De fouten: <br /><br />";
echo $error."<br /><br />";
echo "Ga terug en verbeter de fouten.<br /><br />";
die();
}
// validation expected data exists
if(!isset($_POST['naam']) ||
!isset($_POST['bedrijfsnaam']) ||
!isset($_POST['email']) ||
!isset($_POST['telefoon']) ||
!isset($_POST['bericht'])) {
died('Mijn excuses, er zijn problemen met uw formulier.');
}
$first_name = $_POST['naam']; // required
$last_name = $_POST['bedrijfsnaam']; // not required
$email_from = $_POST['email']; // required
$telephone = $_POST['telefoon']; // not required
$comments = $_POST['bericht']; // required
$error_message = "";
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
if(!preg_match($email_exp,$email)) {
$error_message .= 'Het ingevulde e-mail adres is niet geldig.<br />';
}
$string_exp = "/^[A-Za-z .'-]+$/";
if(!preg_match($string_exp,$naam)) {
$error_message .= 'De ingevulde naam is niet geldig.<br />';
}
if(strlen($bericht) < 2) {
$error_message .= 'Uw bericht is te kort, er zijn minimaal 2 tekens vereist.<br />';
}
if(strlen($error_message) > 0) {
died($error_message);
}
$email_message = "Form details below.\n\n";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "First Name: ".clean_string($naam)."\n";
$email_message .= "Last Name: ".clean_string($bedrijfsnaam)."\n";
$email_message .= "Email: ".clean_string($email)."\n";
$email_message .= "Telephone: ".clean_string($telefoon)."\n";
$email_message .= "Comments: ".clean_string($bericht)."\n";
// create email headers
$headers = 'From: '.$email."\r\n".
'Reply-To: '.$email."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);
?>
if(isset($_POST['email'])) {
// EDIT THE 2 LINES BELOW AS REQUIRED
$email_to = "[email protected]";
$email_subject = "bericht via website";
function died($error) {
// your error code can go here
echo "Sorry, het formulier is niet correct ingevuld. ";
echo "De fouten: <br /><br />";
echo $error."<br /><br />";
echo "Ga terug en verbeter de fouten.<br /><br />";
die();
}
// validation expected data exists
if(!isset($_POST['naam']) ||
!isset($_POST['bedrijfsnaam']) ||
!isset($_POST['email']) ||
!isset($_POST['telefoon']) ||
!isset($_POST['bericht'])) {
died('Mijn excuses, er zijn problemen met uw formulier.');
}
$first_name = $_POST['naam']; // required
$last_name = $_POST['bedrijfsnaam']; // not required
$email_from = $_POST['email']; // required
$telephone = $_POST['telefoon']; // not required
$comments = $_POST['bericht']; // required
$error_message = "";
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
if(!preg_match($email_exp,$email)) {
$error_message .= 'Het ingevulde e-mail adres is niet geldig.<br />';
}
$string_exp = "/^[A-Za-z .'-]+$/";
if(!preg_match($string_exp,$naam)) {
$error_message .= 'De ingevulde naam is niet geldig.<br />';
}
if(strlen($bericht) < 2) {
$error_message .= 'Uw bericht is te kort, er zijn minimaal 2 tekens vereist.<br />';
}
if(strlen($error_message) > 0) {
died($error_message);
}
$email_message = "Form details below.\n\n";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "First Name: ".clean_string($naam)."\n";
$email_message .= "Last Name: ".clean_string($bedrijfsnaam)."\n";
$email_message .= "Email: ".clean_string($email)."\n";
$email_message .= "Telephone: ".clean_string($telefoon)."\n";
$email_message .= "Comments: ".clean_string($bericht)."\n";
// create email headers
$headers = 'From: '.$email."\r\n".
'Reply-To: '.$email."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);
?>
<!-- include your own success html here -->
Bedankt dat u contact met mij zoekt, ik zal zo spoedig mogelijk contact met u opnemen.
Ik hoop echt dat iemand mij kan helpen, ik weet trouwens niet of dit tot een 'quick fix' hoort, maar ik probeer het gewoon even uit.
bij voorbaat dank!
Toevoeging op 09/10/2012 17:05:47:
Ik zie de fout denk ik al. Er zit een fout in je HTML. Op line 12 van je html formulier staat:
Maak daar dit van:
Misschien helpt dat.
Toevoeging op 09/10/2012 17:12:11:
Oplossing:
Je hebt de verkeerde variables gebruikt bij je preg_match. De variables die jij gebruikt bestaan namelijk niet. $email moet $email_from worden, $naam moet $first_name worden en $bericht moet $comments worden.
Dan werkt hij.
Toevoeging op 09/10/2012 17:14:42:
Je gebruikt diezelfde variables ook weer bij het verzenden van je e-mail. Dus dat gaat ook niet werken. Die moet je ook even aanpassen.