Mijn php script werk niet naar behoren. Help
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<form name="contactform" action="send_mail.php" method="post">
<ol>
<li>
<label for="name"><strong>Naam</strong> (verplichte veld)</label>
<input id="name" name="name" class="text" />
</li>
</li>
<li>
<label for="email"><strong>Email adres</strong> (verplichte veld)</label>
<input id="mail" name="mail" class="text" />
</li>
<li>
<label for="comments"><strong>Bericht</strong> (verplichte veld)</label>
<textarea id="comments" name="comments" rows="8" cols="50"></textarea>
</li>
<li>
<input type="image" name="imageField" id="imageField" src="images/submit.gif" class="send" value="submit"/>
<div class="clr"></div>
</li>
</ol>
</form>
<ol>
<li>
<label for="name"><strong>Naam</strong> (verplichte veld)</label>
<input id="name" name="name" class="text" />
</li>
</li>
<li>
<label for="email"><strong>Email adres</strong> (verplichte veld)</label>
<input id="mail" name="mail" class="text" />
</li>
<li>
<label for="comments"><strong>Bericht</strong> (verplichte veld)</label>
<textarea id="comments" name="comments" rows="8" cols="50"></textarea>
</li>
<li>
<input type="image" name="imageField" id="imageField" src="images/submit.gif" class="send" value="submit"/>
<div class="clr"></div>
</li>
</ol>
</form>
Het php bestand send_mail.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
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
<?php
if(isset($_POST['email'])) {
// CHANGE THE TWO LINES BELOW
$email_to = "[email protected]";
$email_subject = "Website-formulier";
function died($error) {
// your error code can go here
echo "<p style ='font:18px/24px Arial,tahoma,sans-serif;color:#ff0000'>Sorry, maar er zijn fouten in het formulier.</p><br /><br />";
echo $error."<br /><br />";
echo "<p style ='font:18px/24px Arial,tahoma,sans-serif;color:#ff0000'>Ga terug, en vul het formulier opnieuw in.</p><br /><br />";
die();
}
// validation expected data exists
if(!isset($_POST['name']) ||
!isset($_POST['mail']) ||
!isset($_POST['comments'])) {
died('Sorry, Er is een probleem bij het opsturen van formulier.');
}
$first_name = $_POST['name']; // required
$email_from = $_POST['mail']; // required
$comments = $_POST['comments']; // 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 .= 'Het email dat u heeft ingevult is niet correct.<br />';
}
$string_exp = "/^[A-Za-z .'-]+$/";
if(!preg_match($string_exp,$first_name)) {
$error_message .= 'Uw naam is niet ingevult.<br />';
}
if(strlen($comments) < 2) {
$error_message .= 'U heeft geen bericht ingevult.<br />';
}
if(strlen($error_message) > 0) {
died($error_message);
}
$email_message = "Formulier gegevens hieronder.\n\n";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "Naam: ".clean_string($first_name)."\n";
$email_message .= "Email: ".clean_string($email_from)."\n";
$email_message .= "Bericht: ".clean_string($comments)."\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);
?>
if ($success)
{
echo '<META HTTP-EQUIV="Refresh" Content="0; URL=succes.html">';
exit;
}
<?php
}
die();
?>
if(isset($_POST['email'])) {
// CHANGE THE TWO LINES BELOW
$email_to = "[email protected]";
$email_subject = "Website-formulier";
function died($error) {
// your error code can go here
echo "<p style ='font:18px/24px Arial,tahoma,sans-serif;color:#ff0000'>Sorry, maar er zijn fouten in het formulier.</p><br /><br />";
echo $error."<br /><br />";
echo "<p style ='font:18px/24px Arial,tahoma,sans-serif;color:#ff0000'>Ga terug, en vul het formulier opnieuw in.</p><br /><br />";
die();
}
// validation expected data exists
if(!isset($_POST['name']) ||
!isset($_POST['mail']) ||
!isset($_POST['comments'])) {
died('Sorry, Er is een probleem bij het opsturen van formulier.');
}
$first_name = $_POST['name']; // required
$email_from = $_POST['mail']; // required
$comments = $_POST['comments']; // 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 .= 'Het email dat u heeft ingevult is niet correct.<br />';
}
$string_exp = "/^[A-Za-z .'-]+$/";
if(!preg_match($string_exp,$first_name)) {
$error_message .= 'Uw naam is niet ingevult.<br />';
}
if(strlen($comments) < 2) {
$error_message .= 'U heeft geen bericht ingevult.<br />';
}
if(strlen($error_message) > 0) {
died($error_message);
}
$email_message = "Formulier gegevens hieronder.\n\n";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "Naam: ".clean_string($first_name)."\n";
$email_message .= "Email: ".clean_string($email_from)."\n";
$email_message .= "Bericht: ".clean_string($comments)."\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);
?>
if ($success)
{
echo '<META HTTP-EQUIV="Refresh" Content="0; URL=succes.html">';
exit;
}
<?php
}
die();
?>
Graag in het vervolg bij code, [code] [/code] tags gebruiken.[/modedit]
Gewijzigd op 08/11/2013 11:07:02 door Bas IJzelendoorn
Wat gaat er fout..?
Op zo'n zelfde manier is de fietsenmaker ook een robot, jij gooit een fiets naar binnen die 'niet naar behoren werkt' en een dag later komt er een fiets uit die werkt.
Denk jij dat deze 2 zinnen waar zijn? Gezien dit topic ben je overtuigt dat de eerste waar is, maar de 2e niet. Waarom zijn wij dan wel robotjes en de fietsenmaker niet? Kun je ons alsjeblieft ook als mensen behandelen, door bijv. zelf wat inzet te tonen en het probleem te omschrijven?
Gewijzigd op 07/11/2013 16:40:37 door Wouter J
Als ik het formulier invult bij email, wordt de formulier naar dat email gestuurd. In plaats van $email_to.
Dan kunnen we zien of de <input> velden overeenkomen met de rest van de code.
Vertel ons eens wat $email_to precies is en wat $_POST['mail'] precies is.
Nu ja, aan dat formulier zullen we dat waarschijnlijk wel merken
Aar:
Zou je a.u.b. je code tussen code-tags kunnen plaatsen door je bericht te bewerken? Dat maakt het overzichtelijker in het topic. Lees hier hoe dat moet.
Alvast bedankt.
Alvast bedankt.
<label for="email"><strong>Email adres</strong> (verplichte veld)</label>
<input id="mail" name="mail" class="text" />
Wat is dat?
Moet een e-mail naar dit adres gestuurd worden?
Indien ja...
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
...
// CHANGE THE TWO LINES BELOW !!!!!!!!!!
$email_to = $_POST['mail'];
$email_from = "[email protected]";
...
?>
...
// CHANGE THE TWO LINES BELOW !!!!!!!!!!
$email_to = $_POST['mail'];
$email_from = "[email protected]";
...
?>
Nee dat wijziging werkt niet. ik krijgt geen email binnen ook niet ongewenst emails
Gewijzigd op 07/11/2013 17:32:42 door Greg Wing
Zit je op localhost? Dan moet je op je server wel een mailserver instellen.
Precies. Ook als je niet op een Localhost zit kunnen ze de mailserver uit hebben gezet. Waarschijnlijk is dat het probleem.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$comments = $_POST['comments'];
$to = "[email protected]";
$subject = "Website-formulier";
$body = "Dit is een automatische bericht. Er kan niet geregeerd worden op deze email.";
mail($to,$subject,$body);
echo "Bericht verzonden!";
?>
$name = $_POST['name'];
$email = $_POST['email'];
$comments = $_POST['comments'];
$to = "[email protected]";
$subject = "Website-formulier";
$body = "Dit is een automatische bericht. Er kan niet geregeerd worden op deze email.";
mail($to,$subject,$body);
echo "Bericht verzonden!";
?>
Gewijzigd op 08/11/2013 09:20:15 door Greg Wing
$name, $email en $comments krijgen een waarde, en daarna doe je er niets mee.
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
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
<?php
// multiple recipients
$to = '[email protected]' . ', '; // note the comma
$to .= '[email protected]';
// subject
$subject = 'Birthday Reminders for August';
// message
$message = '
<html>
<head>
<title>Birthday Reminders for August</title>
</head>
<body>
<p>Here are the birthdays upcoming in August!</p>
<table>
<tr>
<th>Person</th><th>Day</th><th>Month</th><th>Year</th>
</tr>
<tr>
<td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
</tr>
<tr>
<td>Sally</td><td>17th</td><td>August</td><td>1973</td>
</tr>
</table>
</body>
</html>
';
// To send HTML mail, the Content-type header must be set
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Additional headers
$headers .= 'To: Mary <[email protected]>, Kelly <[email protected]>' . "\r\n";
$headers .= 'From: Birthday Reminder <[email protected]>' . "\r\n";
$headers .= 'Cc: [email protected]' . "\r\n";
$headers .= 'Bcc: [email protected]' . "\r\n";
// Mail it
mail($to, $subject, $message, $headers);
?>
// multiple recipients
$to = '[email protected]' . ', '; // note the comma
$to .= '[email protected]';
// subject
$subject = 'Birthday Reminders for August';
// message
$message = '
<html>
<head>
<title>Birthday Reminders for August</title>
</head>
<body>
<p>Here are the birthdays upcoming in August!</p>
<table>
<tr>
<th>Person</th><th>Day</th><th>Month</th><th>Year</th>
</tr>
<tr>
<td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
</tr>
<tr>
<td>Sally</td><td>17th</td><td>August</td><td>1973</td>
</tr>
</table>
</body>
</html>
';
// To send HTML mail, the Content-type header must be set
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Additional headers
$headers .= 'To: Mary <[email protected]>, Kelly <[email protected]>' . "\r\n";
$headers .= 'From: Birthday Reminder <[email protected]>' . "\r\n";
$headers .= 'Cc: [email protected]' . "\r\n";
$headers .= 'Bcc: [email protected]' . "\r\n";
// Mail it
mail($to, $subject, $message, $headers);
?>
regel 62 tot en met 68 ziet er niet zo goed uit volgens mij.
Bas IJzelendoorn op 08/11/2013 11:08:08:
regel 62 tot en met 68 ziet er niet zo goed uit volgens mij.
O ja, inderdaad.
Die zouden er zo moeten uitzien
Maar script werkt nog steeds niet na behoren. Ik krijg nog steeds geen email binnen.
Haal het @ voor mail() eens weg? Zie je errors?
Ik heb @ voor mail() verwijdeerd maar nog steeds geen email binnen gekregen.
Gewijzigd op 09/11/2013 00:04:35 door Greg Wing
Zie mijn vorige post....