Mijn php script werk niet naar behoren. Help
Op welke regel moet dat invoeren in mijn script. Aar
Zet bijvoorbeeld bovenaan.
Ik heb het bovenaan gezet maar nog steeds geen email ontvangen
WAT vermeldt dit?
En waar voer je dit script uit? Eigen lokale server op localhost? Online op een webhosting?
Gewijzigd op 09/11/2013 09:44:06 door - Ariën -
Op een webhosting
Hoe mail je nu? Laat eens al je relevante code zien?
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
var_dump(ini_get('SMTP'));
// CHANGE THE TWO LINES BELOW
$email_to = "[email protected]";
$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['telephone']) ||
!isset($_POST['mail']) ||
!isset($_POST['comments'])) {
died('Sorry, Er is een probleem bij het opsturen van het formulier.');
}
$first_name = $_POST['name']; // required
$telephone = $_POST['telephone']; // not 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);
}
$message = "Formulier gegevens hieronder.\n\n";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$message .= "Naam: ".clean_string($first_name)."\n";
$message .= "Telephone: ".clean_string($telephone)."\n";
$message .= "Email: ".clean_string($email_from)."\n";
$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();
$success = mail($email_to, $email_subject, $email_message, $headers);
if ($success)
{
echo '<META HTTP-EQUIV="Refresh" Content="0; URL=succes.html">';
exit;
}
die();
?>
var_dump(ini_get('SMTP'));
// CHANGE THE TWO LINES BELOW
$email_to = "[email protected]";
$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['telephone']) ||
!isset($_POST['mail']) ||
!isset($_POST['comments'])) {
died('Sorry, Er is een probleem bij het opsturen van het formulier.');
}
$first_name = $_POST['name']; // required
$telephone = $_POST['telephone']; // not 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);
}
$message = "Formulier gegevens hieronder.\n\n";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$message .= "Naam: ".clean_string($first_name)."\n";
$message .= "Telephone: ".clean_string($telephone)."\n";
$message .= "Email: ".clean_string($email_from)."\n";
$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();
$success = mail($email_to, $email_subject, $email_message, $headers);
if ($success)
{
echo '<META HTTP-EQUIV="Refresh" Content="0; URL=succes.html">';
exit;
}
die();
?>
Toevoeging op 09/11/2013 11:18:08:
Bij $email_to staat natuurlijk mijn email
Ja maar ik kan mijn formulier niet gebruiken met deze script. SanThe
Je From is niet correct.
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
// validation expected data exists
if(!isset($_POST['name']) ||
!isset($_POST['telephone']) || // deze moet op non actief
!isset($_POST['mail']) ||
!isset($_POST['comments'])) {
died('Sorry, Er is een probleem bij het opsturen van het formulier.');
}
if(!isset($_POST['name']) ||
!isset($_POST['telephone']) || // deze moet op non actief
!isset($_POST['mail']) ||
!isset($_POST['comments'])) {
died('Sorry, Er is een probleem bij het opsturen van het formulier.');
}
Gewijzigd op 09/11/2013 13:47:23 door Jack Maessen
Maar kunnen jullie mij vertellen waarom als ik mijn email invult op het formulier word het formulier naar dat adres gestuurd inplaats van $email_to
Deze 2 variabelen staan nergens in je script en zijn leeg.
Je krijgt hier ook een error op van undefined variablele, maar omdat je een meta refresh op de $success hebt staan, komen die niet in beeld (anders had je ze gezien).
$email_subject moet zijn: $subject
$email_message moet zijn: $message
Omdat deze leeg waren, heeft je email geen onderwerp en geen bericht in zich. Een beetje spamprotector houdt ze dus tegen en laat ze in de spambox verdwijnen. Nou kan het zijn dat de Reply wel doorkomt omdat hij ze toevallig niet ziet alszijnde spam. Dat verklaart waarom de emails wel bij de afzender doorkomen maar niet bij jou.
Dus: verander je mail() regel naar deze:
Nu zouden de mails bij jou binnen moeten komen omdat ze onderwerp en bericht bevatten en niet meer als spam gezien worden
Gewijzigd op 09/11/2013 15:10:32 door Jack Maessen
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
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
<?php
$name = $_POST['name'];
$telephone = $_POST['telephone'];
$email = $_POST['email'];
$comments = $_POST['comments'];
$to = "[email protected]";
$subject = "Website-formulier";
$message = <<<EMAIL
Formulier gegevens hieronder
Naam: $name
Telefoon: $telephone
Email: $email
Bericht: $comments
EMAIL;
$success = mail($to, $subject, $message);
if ($success)
{
echo '<META HTTP-EQUIV="Refresh" Content="0; URL=succes.html">';
exit;
}
die();
?>
$name = $_POST['name'];
$telephone = $_POST['telephone'];
$email = $_POST['email'];
$comments = $_POST['comments'];
$to = "[email protected]";
$subject = "Website-formulier";
$message = <<<EMAIL
Formulier gegevens hieronder
Naam: $name
Telefoon: $telephone
Email: $email
Bericht: $comments
EMAIL;
$success = mail($to, $subject, $message);
if ($success)
{
echo '<META HTTP-EQUIV="Refresh" Content="0; URL=succes.html">';
exit;
}
die();
?>
Gewijzigd op 09/11/2013 21:52:36 door Greg Wing
Anders moet je eens kijken naar phpMailer.
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
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
<?php
$to = "[email protected]";
$subject = "Website-formulier";
function died($error) {
// je foutbericht staat hier
echo "<p style ='font:18px/24px Arial,tahoma,sans-serif;color:#ff0000'>Het spijt ons, vanwege een fout is het formulier niet verzonden.</p>";
echo "<p style ='font:18px/24px Arial,tahoma,sans-serif;color:#ff0000'>Deze fout(en) tonen zich hieronder.</p><br /><br />";
echo $error."<br /><br />";
echo "<p style ='font:18px/24px Arial,tahoma,sans-serif;color:#ff0000'>Ga aub terug om de velden correct in te vullen.</p><br /><br />";
die();
}
// validation expected data exists
if(!isset($_POST['name']) ||
!isset($_POST['telephone']) ||
!isset($_POST['email']) ||
!isset($_POST['comments'])) {
died('Het spijt ons, er is een probleem opgetreden bij het verzenden van het formulier.');
}
$name = $_POST['name'];
$telephone = $_POST['telephone'];
$email = $_POST['email'];
$comments = $_POST['comments'];
$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,$name)) {
$error_message .= 'De naam is niet ingevult.<br />';
}
if(strlen($comments) < 2) {
$error_message .= 'Het bericht is niet ingevult.<br />';
}
$string_exp = "^[0-9 .-]+$";
if(!eregi($string_exp,$telephone)) {
$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);
}
$message = <<<EMAIL
Formulier gegevens hieronder
Naam: $name
Telefoon: $telephone
Email: $email
Bericht: $comments
EMAIL;
$success = mail($to, $subject, $message);
if ($success)
{
echo '<META HTTP-EQUIV="Refresh" Content="0; URL=succes.html">';
exit;
}
die();
?>
$to = "[email protected]";
$subject = "Website-formulier";
function died($error) {
// je foutbericht staat hier
echo "<p style ='font:18px/24px Arial,tahoma,sans-serif;color:#ff0000'>Het spijt ons, vanwege een fout is het formulier niet verzonden.</p>";
echo "<p style ='font:18px/24px Arial,tahoma,sans-serif;color:#ff0000'>Deze fout(en) tonen zich hieronder.</p><br /><br />";
echo $error."<br /><br />";
echo "<p style ='font:18px/24px Arial,tahoma,sans-serif;color:#ff0000'>Ga aub terug om de velden correct in te vullen.</p><br /><br />";
die();
}
// validation expected data exists
if(!isset($_POST['name']) ||
!isset($_POST['telephone']) ||
!isset($_POST['email']) ||
!isset($_POST['comments'])) {
died('Het spijt ons, er is een probleem opgetreden bij het verzenden van het formulier.');
}
$name = $_POST['name'];
$telephone = $_POST['telephone'];
$email = $_POST['email'];
$comments = $_POST['comments'];
$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,$name)) {
$error_message .= 'De naam is niet ingevult.<br />';
}
if(strlen($comments) < 2) {
$error_message .= 'Het bericht is niet ingevult.<br />';
}
$string_exp = "^[0-9 .-]+$";
if(!eregi($string_exp,$telephone)) {
$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);
}
$message = <<<EMAIL
Formulier gegevens hieronder
Naam: $name
Telefoon: $telephone
Email: $email
Bericht: $comments
EMAIL;
$success = mail($to, $subject, $message);
if ($success)
{
echo '<META HTTP-EQUIV="Refresh" Content="0; URL=succes.html">';
exit;
}
die();
?>
kijk hier
zie de tip op die pagina:
Quote:
preg_match() with the i (PCRE_CASELESS) modifier is the suggested alternative
Succes
Gewijzigd op 10/11/2013 11:48:47 door Michiel Mussies
waarom gebruik je geen headers in e mail() functie?
Want ik hebt het probeerd maar bij $success = mail($to, $subject, $message, $headers); pakt hij niet de header als ik hem in zet.