Fout in contactformulier, maar kan hem niet vinden

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kevin van der Zanden

Kevin van der Zanden

09/10/2012 16:13:16
Quote Anchor link
Goedemiddag allemaal, ik heb een contactformulier gemaakt met php script voor de controle en verzending, echter, het werkt niet.
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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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);
?>


<!-- include your own success html here -->

Bedankt dat u contact met mij zoekt, ik zal zo spoedig mogelijk contact met u opnemen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
}
?>


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!
 
PHP hulp

PHP hulp

12/07/2024 12:28:46
 
Mik PHP

Mik PHP

09/10/2012 16:58:34
Quote Anchor link
Klopt het dat in dit script alle velden verplicht ingevult moeten worden?

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<td valign="top"">

Maak daar dit van:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<td valign="top">

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.
 
Kevin van der Zanden

Kevin van der Zanden

09/10/2012 18:35:32
Quote Anchor link
Ja het werkt

super bedankt!!!
Gewijzigd op 09/10/2012 18:56:17 door Kevin van der Zanden
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.