Versio

php/html script verstuurd geen email. (contact formulier)

Overzicht Reageren

Marijn run

marijn run

05/02/2012 14:06:14
Quote Anchor link
hier onder is het script te vinden
Quote:
<form name="contactform" method="post" action="send_form_email.php">
<table width="450px">
<tr>
<td valign="top">
<label for="voornaam">voornaam *</label>
</td>
<td valign="top">
<input type="text" name="voornaam" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top"">
<label for="achternaam">achternaam *</label>
</td>
<td valign="top">
<input type="text" name="achternaam" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="EmailAdres">Email-Adres *</label>
</td>
<td valign="top">
<input type="text" name="EmailAdres" maxlength="80" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="telefoonnummer">telefoonnummer</label>
</td>
<td valign="top">
<input type="text" name="telefoonnummer" maxlength="30" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="postcode">postcode</label>
</td>
<td valign="top">
<textarea name="postcode" maxlength="6" cols="25" rows="6"></textarea>
</td>
</tr>
<tr>
<tr>
<td valign="top">
<label for="straat">straat + nummer</label>
</td>
<td valign="top">
<textarea name="straat" maxlength="1000" cols="25" rows="6"></textarea>
</td>
</tr>
<tr>
<tr>
<td valign="top">
<label for="probleem">probleem</label>
</td>
<td valign="top">
<textarea name="probleem" maxlength="1000" cols="25" rows="6"></textarea>
</td>
</tr>
<tr>
<I>Op welke dagen kunnen we contact met u opnemen:</I><BR>
<BR>
<SELECT NAME="keuzen">
<OPTION>Maandag</OPTION>
<OPTION>Dinsdag</OPTION>
<OPTION>Woensdag</OPTION>
<OPTION>Donderdag</OPTION>
<OPTION>Vrijdag</OPTION>
<OPTION>Zaterdag</OPTION>
<OPTION>Zondag</OPTION>
<OPTION>alleen werkdagen</OPTION>
</SELECT>
<td colspan="2" style="text-align:center">
<input type="submit" value="Submit">
</td>
</tr>
</table>
</form>


dat is de html en nu de php

Quote:
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
68
69
70
71
72
73
74
75
76
77
78
<?php
if(isset($_POST['email'])) {
    
    // EDIT THE 2 LINES BELOW AS REQUIRED
    $email_to = "marijn@script.net";
    $email_subject = "contact formulier";
    
    
    function
died($error) {
        // your error code can go here
        echo "We are very sorry, but there were error(s) found with the form you submitted. ";
        echo "These errors appear below.<br /><br />";
        echo $error."<br /><br />";
        echo "Please go back and fix these errors.<br /><br />";
        die();
    }

    
    // validation expected data exists
    if(!isset($_POST['voornaam']) ||
        !
isset($_POST['achternaam']) ||
        !
isset($_POST['EmailAdres']) ||
        !
isset($_POST['telefoonnummer']) ||
        !
isset($_POST['Postcode']) ||
        !
isset($_POST['Straat']) ||
        !
isset($_POST['Probleem']) ||
        !
isset($_POST['Keuzen'])) {
        died('We are sorry, but there appears to be a problem with the form you submitted.');      
    }

    
    $voornaam = $_POST['voornaam']; // required
    $achternaam = $_POST['achternaam']; // required
    $EmailAdres = $_POST['EmailAdres']; // required
    $telefoonnummer = $_POST['telefoonnummer']; // required
    $Postcode = $_POST['Postcode']; // required
    $Straat = $_POST['Straat']; // required
    $Probleem = $_POST['Probleem']; // required
    $Keuzen = $_POST['Keuzen']; // required
    
    $error_message = "";
    $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
  if(!preg_match($email_exp,$email_from)) {
    $error_message .= 'The Email Address you entered does not appear to be valid.<br />';
  }

    $string_exp = "/^[A-Za-z .'-]+$/";
  if(!preg_match($string_exp,$voornaam)) {
    $error_message .= 'The First Name you entered does not appear to be valid.<br />';
  }

  if(!preg_match($string_exp,$achternaam)) {
    $error_message .= 'The Last Name you entered does not appear to be valid.<br />';
  }

  if(strlen($comments) < 2) {
    $error_message .= 'The Comments you entered do not appear to be valid.<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 .= "voornaam: ".clean_string($voornaam)."\n";
    $email_message .= "achternaam: ".clean_string($achternaam)."\n";
    $email_message .= "email-adres ".clean_string($EmailAdres)."\n";
    $email_message .= "telefoonnummer: ".clean_string($telefoonnummer)."\n";
    $email_message .= "Postcode: ".clean_string($postcode)."\n";
    $email_message .= "Straat: ".clean_string($straat)."\n";
    $email_message .= "Probleem: ".clean_string($probleem)."\n";
    $email_message .= "contactdag.: ".clean_string($Keuzen)."\n";
    
// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@
mail($email_to, $email_subject, $email_message, $headers);
?>


<!-- html -->

hoi

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

PHP hulp

25/05/2012 11:01:47
Gesponsorde koppelingen:
 
Kobar Secret

Kobar Secret

05/02/2012 14:16:11
Quote Anchor link
zet bovenste gedeelte wat in de qoute tekst staat ook even in de code taggs :P
ik maak die fout ook steeds leest niet handig voor de scripters

maar verstuurd niks.. geeft hij foutmelding of gaat hij niet door naar ''verzonden'' of zegt hij helemaal niks? meschien zegtie verzonden maar verzend hij niet

Als je iets meer info geeft zoekt het iets gemakkelijker
Gewijzigd op 05/02/2012 14:16:52 door Kobar Secret
 
Hertog Jan

Hertog Jan

05/02/2012 14:18:02
Quote Anchor link
Als je op localhost zit kun je niet zomaar een e-mail versturen, dan moet wel een mail server hebben..

En anders moet je even duidelijk uitleggen wat er wel of niet goed gaat.
 
- SanThe -

- SanThe -

05/02/2012 14:36:40
Quote Anchor link
Of een formulier is gepost check je met:
if($_SERVER['REQUEST_METHOD'] == 'POST')

En niet, zoals jij nu doet, op een NIET bestaand formulierveld.
 
Jaron T

Jaron T

05/02/2012 14:36:52
Quote Anchor link
haal sowieso dat apenstaartje op regel 77 weg, dan zie je tenminste de mail() foutmelding.
 
Ger van Steenderen

Ger van Steenderen

05/02/2012 15:16:03
Quote Anchor link
Hertog Jan op 05/02/2012 14:18:02:
Als je op localhost zit kun je niet zomaar een e-mail versturen, dan moet wel een mail server hebben..

En anders moet je even duidelijk uitleggen wat er wel of niet goed gaat.

Dat kan wel maar dan moet php.ini aanpassen of als op de SMTP server moet worden ingelogd bv PHPMailer gebruiken.
 
Obelix en Idefix

Obelix en Idefix

05/02/2012 15:20:33
Quote Anchor link
Los van bovenstaande opmerkingen/adviezen, ipv de mailfunctie van php wordt meestal geadviseerd om phpmailer of swiftmailer te gebruiken.
 
Marijn run

marijn run

05/02/2012 16:46:25
Quote Anchor link
hij staat al online om te testen. hier vind je het document in html: http://j-m-ict.netii.net/J&M/contact.html, als je het formulier invult zegt hij niks meer, en ook de email krijg ik niet binnen, zouden jullie misschien aan de hand van een voorbeeld willen reageren ???
(bij het nieuwe script heb ik het apenstaartje op regel 77 weg gehaalt, en het email adres gelinkt naar de email server van de website
 
- Aar -

- Aar -

05/02/2012 16:50:26
Quote Anchor link
Gebruik deze code eens om de mail te versturen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
$mail = mail($email_to, $email_subject, $email_message, $headers);
if($mail) {
    echo "De mail is verstuurd";
} else {
    echo "De mail is NIET verstuurd.";
}
 
Marijn run

marijn run

05/02/2012 16:52:35
Quote Anchor link
dan krijg ik een error: Parse error: syntax error, unexpected T_STRING in /home/a6405334/public_html/J&M/mail.php on line 88
 
Kobar Secret

Kobar Secret

05/02/2012 17:03:38
Quote Anchor link
en wat is regel 88?
 
Marijn run

marijn run

05/02/2012 17:15:47
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php
 
- Aar -

- Aar -

05/02/2012 17:21:51
Quote Anchor link
....en daar om heen?
 
Hertog Jan

Hertog Jan

05/02/2012 17:42:07
Quote Anchor link
Ger van Steenderen op 05/02/2012 15:16:03:
Hertog Jan op 05/02/2012 14:18:02:
Als je op localhost zit kun je niet zomaar een e-mail versturen, dan moet wel een mail server hebben..

En anders moet je even duidelijk uitleggen wat er wel of niet goed gaat.

Dat kan wel maar dan moet php.ini aanpassen of als op de SMTP server moet worden ingelogd bv PHPMailer gebruiken.


Dat bedoel ik met 'zomaar',dat het dus eerst ingesteld moet worden :)
 
Obelix en Idefix

Obelix en Idefix

05/02/2012 18:14:11
Quote Anchor link
Als ik op de link klik, krijgt ik een melding: You are seeing this page because the system administrator of 000webhost.com is currently checking this website for malicious content.
 
- Aar -

- Aar -

05/02/2012 18:32:27
Quote Anchor link
Kan je geen betere hosting dan 000webhost nemen Marijn?
 
Marijn run

marijn run

05/02/2012 18:44:41
Quote Anchor link
zoals ???
 
- SanThe -

- SanThe -

05/02/2012 19:05:38
Quote Anchor link
- SanThe - op 05/02/2012 14:36:40:
Of een formulier is gepost check je met:
if($_SERVER['REQUEST_METHOD'] == 'POST')

En niet, zoals jij nu doet, op een NIET bestaand formulierveld.


Heb je dit nu al gelezen?
Want dit is de fout. Het script komt helemaal niet bij het emailverzenden.
 



Overzicht Reageren

Get Adobe Flash player