Contactformulier door linken naar bedanktpagina of foutpagina
Ik heb het volgende probleem, als het contactformulier is verstuurd wordt je doorgestuurd naar de bedankt pagina, dit gaat allemaal goed. Echter wil ik nu dat als ik in het contactformulier is aangevinkt dat je zelf een email wilt ontvangen. Dat er dan op de bedankt pagina automatisch een regel bij komt met er is nu een mail naar je verstuurd.
En dit geldt ook voor als je een fout maakt dan moet deze ook op die pagina met daarbij de tekst u heeft een fout gemaakt bla bla en daaronder dan de fout weergeven. Dus geen standaard tekst met alle fouten maar enkel de fout. Ik heb nu dit:
Quote:
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<?php
////////////////////////////////////////////////
//////// robbert.uphero.com ////////////////////
//////// Door Robbert B ////////////////////////
////////////////////////////////////////////////
//Kijken of er op de submit button is gedrukt.
if($_SERVER['REQUEST_METHOD'] == "POST"){
// Definiëren variablen
// Vaste variablen
$ontvanger = '[email protected]'; //Email van de ontvanger
$naar = 'Robbert B'; //Naam
$onderwerp = "Ingevuld contactformulier"; //Onderwerp van de mail
$spam = 0; //Anti Spam, in seconden
//Controle of de waarden zijn ingevuld!
$error = ''; // Begint met het aantal aanwezige errors
$aantal = 0; // Telt het aantal errors
if(isset($_COOKIE['mailform']))
{ $show = true;
echo 'Vanwege veiligheids redenen kunt u maar eens in de '.$spam.' seconden een e-mail versturen!';
}
else {
if(strlen($_POST['naam']) < 2)
{$error .= "- U heeft u naam niet ingevuld! <BR />";
$aantal++;
}
if(strlen($_POST['email']) < 6 || preg_match('~^(?=[^a-z]*[a-z])(?=[^A-Z]*[A-Z])(?=\D*\d)(?=[A-Za-z0-9]*[^A-Za-z0-9])\S{6,}$~', $_POST['email']))
{$error .= "- U heeft geen geldig e-mailadres ingevuld! <BR />";
$aantal++;
}
if(strlen($_POST['telefoon']) > 1 && !preg_match('/^[0-9]{10}$/', $_POST['telefoon']))
{$error .= "- Uw telefoonnummer bestaat niet uit 10 cijfers! <BR />";
$aantal++;
}
if (strlen($_POST['tekst']) < 10 )
{$error .= "- U heeft geen geldige bericht ingevuld. <BR />";
$aantal++;
}
if (!empty($error)) // Als er fouten zijn
{
echo ($aantal == 1) ? 'De volgende fout is opgetreden: <BR />' : 'De volgende fouten zijn opgetreden <BR />'; //Controllen enkelfout of meervoud.
echo "".$error."<BR />";
}
else { // Het mailen
//Headers
$header = "Content-type: text/html; charset=iso-8859-1\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "To: ".$naar." <".ontvanger.">\r\n";
$header .= "From: ".$_POST['naam']." <".$_POST['email'].">\r\n";
$header .= "Reply-To: ".$naar." <".$ontvanger.">\r\n";
//Het daadwerkelijke bericht
$bericht = '
<html>
<head>
<title>Some title</title>
</head>
<body>
<table style="margin:auto; width: 640px; background-color: #FBFBEF; border-color:black; border:1px; border-style:solid; border-spacing:0; border-collapse:collapse; padding:0;">
<tr><td>
<img src="http://robbert.uphero.com/erasmusbrug.jpg" alt="banner"; width: 640px; height:149px; />
</td></tr>
<tr style="min-height:30px; width:640px;"><td>
<p style="margin-top: 5px; margin-left:5px;">Geachte '.$_POST['naam'].', <br /></p>
<p style="margin-left:5px;">Hierbij ontvangt u een kopie van de door u verstuurde e-mail:</p>
<p style="margin-left:30px;">
Afzender: '.$_POST['naam'].'<br />
E-mailadres: '.$_POST['email'].'<br />
Telefoonnummer: '.$_POST['telefoon'].'<br />
Onderwerp: '.$_POST['subject'].'<br />
Bericht: '.$_POST['tekst'].'<br /></p>
<p style="margin-left: 5px;">
Mocht u nog vragen hebben, dan kunt u gerust nogmaals contact opnemen.</p>
<p style="margin-left: 5px;">
Met vriendelijke groet,</p>
<p style="margin-left: 5px; margin-bottom: 5px;">
Robbert Bruin</p>
</td></tr>
<tr style="width:580px; margin-left: auto; margin-right: auto;"><td>
</td></tr>
</table>
</body>
</html>
';
//De mail
mail($ontvanger, $onderwerp, $bericht, $header);
//Bevestigingsbericht
setcookie('mailform',1,time()+($spam*1)); // cookie zetten tegen spammen
$show = true; // foutmelding wordt weergeven
header("location: index.html");
//Als het copy is aangevinkt
if(isset($_POST['mailmij'])) {
mail($_POST['email'], "Kopie emailbericht", $bericht, $header);
}
}
}
}
?>
////////////////////////////////////////////////
//////// robbert.uphero.com ////////////////////
//////// Door Robbert B ////////////////////////
////////////////////////////////////////////////
//Kijken of er op de submit button is gedrukt.
if($_SERVER['REQUEST_METHOD'] == "POST"){
// Definiëren variablen
// Vaste variablen
$ontvanger = '[email protected]'; //Email van de ontvanger
$naar = 'Robbert B'; //Naam
$onderwerp = "Ingevuld contactformulier"; //Onderwerp van de mail
$spam = 0; //Anti Spam, in seconden
//Controle of de waarden zijn ingevuld!
$error = ''; // Begint met het aantal aanwezige errors
$aantal = 0; // Telt het aantal errors
if(isset($_COOKIE['mailform']))
{ $show = true;
echo 'Vanwege veiligheids redenen kunt u maar eens in de '.$spam.' seconden een e-mail versturen!';
}
else {
if(strlen($_POST['naam']) < 2)
{$error .= "- U heeft u naam niet ingevuld! <BR />";
$aantal++;
}
if(strlen($_POST['email']) < 6 || preg_match('~^(?=[^a-z]*[a-z])(?=[^A-Z]*[A-Z])(?=\D*\d)(?=[A-Za-z0-9]*[^A-Za-z0-9])\S{6,}$~', $_POST['email']))
{$error .= "- U heeft geen geldig e-mailadres ingevuld! <BR />";
$aantal++;
}
if(strlen($_POST['telefoon']) > 1 && !preg_match('/^[0-9]{10}$/', $_POST['telefoon']))
{$error .= "- Uw telefoonnummer bestaat niet uit 10 cijfers! <BR />";
$aantal++;
}
if (strlen($_POST['tekst']) < 10 )
{$error .= "- U heeft geen geldige bericht ingevuld. <BR />";
$aantal++;
}
if (!empty($error)) // Als er fouten zijn
{
echo ($aantal == 1) ? 'De volgende fout is opgetreden: <BR />' : 'De volgende fouten zijn opgetreden <BR />'; //Controllen enkelfout of meervoud.
echo "".$error."<BR />";
}
else { // Het mailen
//Headers
$header = "Content-type: text/html; charset=iso-8859-1\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "To: ".$naar." <".ontvanger.">\r\n";
$header .= "From: ".$_POST['naam']." <".$_POST['email'].">\r\n";
$header .= "Reply-To: ".$naar." <".$ontvanger.">\r\n";
//Het daadwerkelijke bericht
$bericht = '
<html>
<head>
<title>Some title</title>
</head>
<body>
<table style="margin:auto; width: 640px; background-color: #FBFBEF; border-color:black; border:1px; border-style:solid; border-spacing:0; border-collapse:collapse; padding:0;">
<tr><td>
<img src="http://robbert.uphero.com/erasmusbrug.jpg" alt="banner"; width: 640px; height:149px; />
</td></tr>
<tr style="min-height:30px; width:640px;"><td>
<p style="margin-top: 5px; margin-left:5px;">Geachte '.$_POST['naam'].', <br /></p>
<p style="margin-left:5px;">Hierbij ontvangt u een kopie van de door u verstuurde e-mail:</p>
<p style="margin-left:30px;">
Afzender: '.$_POST['naam'].'<br />
E-mailadres: '.$_POST['email'].'<br />
Telefoonnummer: '.$_POST['telefoon'].'<br />
Onderwerp: '.$_POST['subject'].'<br />
Bericht: '.$_POST['tekst'].'<br /></p>
<p style="margin-left: 5px;">
Mocht u nog vragen hebben, dan kunt u gerust nogmaals contact opnemen.</p>
<p style="margin-left: 5px;">
Met vriendelijke groet,</p>
<p style="margin-left: 5px; margin-bottom: 5px;">
Robbert Bruin</p>
</td></tr>
<tr style="width:580px; margin-left: auto; margin-right: auto;"><td>
</td></tr>
</table>
</body>
</html>
';
//De mail
mail($ontvanger, $onderwerp, $bericht, $header);
//Bevestigingsbericht
setcookie('mailform',1,time()+($spam*1)); // cookie zetten tegen spammen
$show = true; // foutmelding wordt weergeven
header("location: index.html");
//Als het copy is aangevinkt
if(isset($_POST['mailmij'])) {
mail($_POST['email'], "Kopie emailbericht", $bericht, $header);
}
}
}
}
?>
Iemand?
Die code zelf geschreven?
Waar loop je vast?
Als het een vacature of scriptrequest is, staat het in de verkeerde rubriek.
Haal je e-mailadres uit je code. Anders zul je nog genoeg (ongewenste) reacties krijgen ;-)
Zou geen $_POST waarden gebruiken in het script zonder enige vorm van beveiliging (bv strip_tags).
Code volledig zelf geschreven, waar ik vast loop is het volgende
Ik wil graag dat ik wordt doorgestuurd naar een pagina zoals de rest van mijn layout, zie http://www.robbert.uphero.com/bedankt.html
Zoiets wil ik ook creeëren voor als er een foutmelding is.
Alleen de foutmeldingen zijn wisselende waarde dus heb geen idee hoe ik dat er laat komen.
Toon als er fouten zijn het formulier en geef daarbij aan wat er fout is.
De waarden die eerder zijn ingevuld kun je dan ook tonen, zodat niet het hele formulier opnieuw ingevuld hoeft te worden.
Wat is eigenlijk het nut van de "". aan het begin van die echo?
Kun jij eenvoudig zien bij welke { de laatste vier } horen?
Zorg voor een overzichtelijke uitlijning.
Gewijzigd op 27/06/2013 20:03:47 door Obelix Idefix