Contactformulier niet op index gebruiken??!!
Nu ben ik nieuw op deze site maar ik heb een vraag op het contact formulier van Miranda Verburg onder Data Verwerking wat ook het formulier is welke ik bewerkt heb om hem te kunnen gebruiken voor de site van onze winkel.
Nu is het zo dat als ik hem gebruik op mijn site onder http://www.gelukgever.nl/index.php?page=home hij goed functioneerd (inclusief de redirect alsmede de controles)
echter als ik hem plaats op http://www.gelukgever.nl.nl/pagina.php?page=contact en ik op verzenden klik hij naar mijn http://www.gelukgever.nl/pagina.php?page=wie_zijn_we (contactpagina) gaat zonder iets te controleren alsmede de bedanktpagina.
Nu zou ik dus graag willen weten waarom hij het nu niet goed doet??.
bijvoorbaat dank
Gewijzigd op 01/01/1970 01:00:00 door Bj?rn
Alles wat je wil opsturen, moet tussen <form... > en </form> staan
Begin daar al eens mee.
Ik zal nu het script zoals hij is hieronder bijvoegen waarbij hij dus op de ene pagina WEL en op de andere pagina NIET werkt> :(
Ik hoop dat het duidelijk overkomt! en dat iemand me kan vertellen wat ik fout doe.
<font size="5" color="#004FA3"><strong>Contactformulier</strong></font><br><br>
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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
<?
// geef e-mail adres op van ontvanger
$mail_ontv = "[email protected]";
// is niet 100% !!!
function checkmail($mail)
{
$email_host = explode("@", $mail);
$email_host = $email_host['1'];
$email_resolved = gethostbyname($email_host);
if ($email_resolved != $email_host && eregi("^[0-9a-z]([-_.~]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$mail))
$valid = 1;
return $valid;
}
// als er niet op submit is gedrukt, of als er wel op is gedrukt maar niet alles ingevoerd is
if (!$_POST['submit'] || $_POST['submit'] && (!$_POST['naam'] || !$_POST['mail'] || !checkmail($_POST['mail']) || !$_POST['msggs'] || !$_POST['onderwerp']))
{
if ($_POST['submit'] && (!$_POST['naam'] || !$_POST['mail'] || !checkmail($_POST['mail']) || !$_POST['msggs'] || !$_POST['onderwerp']))
{
echo "<center><B><I>U bent één of meerdere verplichte velden in te vullen. Ook kan het zijn dat U een verkeerd e-mail adres heeft ingevuld.</I></B></center>";
}
// form + tabel
echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
echo "<form method=\"POST\" ACTION=\"" . $_SERVER['PHP_SELF'] . "\">";
// aanhef
echo '<tr><td>Aanhef *:</td></tr>
<tr><td><input name="aanhef" type="radio" value="De heer" checked="checked" />De heer
<input name="aanhef" type="radio" value="Mevrouw" />Mevrouw</td></tr>';
// space
echo "<tr><td> </td></tr>";
// naam
echo "<tr><td>Voornaam + Achternaam *:</td></tr>";
echo "<tr><td><input type=\"text\" name=\"naam\" value=\"" . $_POST['naam'] . "\"></td></tr>";
// space
echo "<tr><td> </td></tr>";
// mail
echo "<tr><td>E-mailadres *:</td></tr>";
echo "<tr><td><input type=\"text\" name=\"mail\" value=\"" . $_POST['mail'] . "\"></td></tr>";
// space
echo "<tr><td> </td></tr>";
// ter attentie van
echo '<tr><td>Ter attentie van *:</td></tr>';
echo '<tr><td>';
echo '<select name="ter_attentie_van">';
echo '<option value="Primera">Primera</option>';
echo '<option value="Postbank">Postbank</option>';
echo '<option value="Postkantoor">Postkantoor</option>';
echo '</select></td></tr>';
// space
echo "<tr><td> </td></tr>";
// mail
echo "<tr><td>Onderwerp *:</td></tr>";
echo "<tr><td><input type=\"text\" name=\"onderwerp\" value=\"" . $_POST['onderwerp'] . "\"></td></tr>";
// vraag of opmerking
echo "<tr><td>Vraag of opmerking*:</td></tr>";
echo "<tr><td><TEXTAREA name=\"msggs\" ROWS=\"6\" COLS=\"30\">" . htmlentities($_POST['msggs']) . "</TEXTAREA></td></tr>";
// space
echo "<tr><td> </td></tr>";
// verplichte velden
echo '<tr><td><h6>Velden met een * zijn verplicht</h6></td></tr>';
// button
echo "<tr><td><input type=\"reset\" name=\"reset\" value=\"Wissen\">"; echo "<input type=\"submit\" name=\"submit\" value=\"Formulier Versturen\"></tr></td>";
// sluit form + tabel
echo "</form>";
echo "</table>";
}
// versturen naar
else
{
// set datum
$datum = date("d.m.Y H:i");
// set ip
$ip = $_SERVER['REMOTE_ADDR'];
$inhoud_mail .= "\n";
$inhoud_mail .= "=======================================================\n";
$inhoud_mail .= "\n";
$inhoud_mail .= "- ingevulde contact formulier -\n";
$inhoud_mail .= " - www.GELUKGEVER.nl -\n";
$inhoud_mail .= "\n";
$inhoud_mail .= "=======================================================\n\n";
$inhoud_mail .= $_SERVER['SCRIPT_URI'] . "\n\n";
$inhoud_mail .= "Onderstaand wat U doorgegeven en/of gevraagd heeft: \n\n\n";
$inhoud_mail .= "Ter attentie van: " . $_POST['ter_attentie_van'] . "\n\n";
$inhoud_mail .= "Onderwerp: " . $_POST['onderwerp'] . "\n\n";
$inhoud_mail .= "Aanhef: " . $_POST['aanhef'] . "\n\n";
$inhoud_mail .= "Voornaam + Achternaam: " . $_POST['naam'] . "\n\n";
$inhoud_mail .= "E-mailadres: " . $_POST['mail'] . "\n\n";
$inhoud_mail .= "Vraag of opmerking:\n";
$inhoud_mail .= $_POST['msggs'] . "\n\n\n\n";
$inhoud_mail .= "=======================================================\n\n";
$inhoud_mail .= "Verstuurd op " . $datum . " via het ip " . $ip . "\n\n";
$inhoud_mail .= "=======================================================\n\n";
$headers = "From: " . $_POST['naam'] . " <" . $_POST['mail'] . ">";
$headers = stripslashes($headers);
$headers = str_replace("\n", "", $headers); // Verwijder \n
$headers = str_replace("\r", "", $headers); // Verwijder \r
$headers = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $headers)); // Slashes van quotes
$_POST['onderwerp'] = str_replace("\n", "", $_POST['onderwerp']); // Verwijder \n
$_POST['onderwerp'] = str_replace("\r", "", $_POST['onderwerp']); // Verwijder \r
$_POST['onderwerp'] = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $_POST['onderwerp'])); // Slashes van quotes
mail($mail_ontv, $onderwerp= Contactformulier, $inhoud_mail, "From: $naam <$mail>");
mail($mail, $onderwerp= Contactformulier, $inhoud_mail, "From: $naam <$mail_ontv>");
echo "<span style=\"color: green;\"><center><h3>Uw aanvraag is verstuurd</h3></center></span>";
echo "<center><p>Bedankt voor het insturen van uw aanvraag. <BR>We verwerken deze zo spoedig mogelijk</p></center>";
echo "<center><p>We zullen vertrouwelijk omgaan met de informatie die we van U krijgen, uw mail adres verstrekken wij niet aan derden.</p></center>";
echo "<center><a class=\"main\" href='index.php?page=contact'>terug naar contactpagina</a></center>";
}
?>
// geef e-mail adres op van ontvanger
$mail_ontv = "[email protected]";
// is niet 100% !!!
function checkmail($mail)
{
$email_host = explode("@", $mail);
$email_host = $email_host['1'];
$email_resolved = gethostbyname($email_host);
if ($email_resolved != $email_host && eregi("^[0-9a-z]([-_.~]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$mail))
$valid = 1;
return $valid;
}
// als er niet op submit is gedrukt, of als er wel op is gedrukt maar niet alles ingevoerd is
if (!$_POST['submit'] || $_POST['submit'] && (!$_POST['naam'] || !$_POST['mail'] || !checkmail($_POST['mail']) || !$_POST['msggs'] || !$_POST['onderwerp']))
{
if ($_POST['submit'] && (!$_POST['naam'] || !$_POST['mail'] || !checkmail($_POST['mail']) || !$_POST['msggs'] || !$_POST['onderwerp']))
{
echo "<center><B><I>U bent één of meerdere verplichte velden in te vullen. Ook kan het zijn dat U een verkeerd e-mail adres heeft ingevuld.</I></B></center>";
}
// form + tabel
echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
echo "<form method=\"POST\" ACTION=\"" . $_SERVER['PHP_SELF'] . "\">";
// aanhef
echo '<tr><td>Aanhef *:</td></tr>
<tr><td><input name="aanhef" type="radio" value="De heer" checked="checked" />De heer
<input name="aanhef" type="radio" value="Mevrouw" />Mevrouw</td></tr>';
// space
echo "<tr><td> </td></tr>";
// naam
echo "<tr><td>Voornaam + Achternaam *:</td></tr>";
echo "<tr><td><input type=\"text\" name=\"naam\" value=\"" . $_POST['naam'] . "\"></td></tr>";
// space
echo "<tr><td> </td></tr>";
echo "<tr><td>E-mailadres *:</td></tr>";
echo "<tr><td><input type=\"text\" name=\"mail\" value=\"" . $_POST['mail'] . "\"></td></tr>";
// space
echo "<tr><td> </td></tr>";
// ter attentie van
echo '<tr><td>Ter attentie van *:</td></tr>';
echo '<tr><td>';
echo '<select name="ter_attentie_van">';
echo '<option value="Primera">Primera</option>';
echo '<option value="Postbank">Postbank</option>';
echo '<option value="Postkantoor">Postkantoor</option>';
echo '</select></td></tr>';
// space
echo "<tr><td> </td></tr>";
echo "<tr><td>Onderwerp *:</td></tr>";
echo "<tr><td><input type=\"text\" name=\"onderwerp\" value=\"" . $_POST['onderwerp'] . "\"></td></tr>";
// vraag of opmerking
echo "<tr><td>Vraag of opmerking*:</td></tr>";
echo "<tr><td><TEXTAREA name=\"msggs\" ROWS=\"6\" COLS=\"30\">" . htmlentities($_POST['msggs']) . "</TEXTAREA></td></tr>";
// space
echo "<tr><td> </td></tr>";
// verplichte velden
echo '<tr><td><h6>Velden met een * zijn verplicht</h6></td></tr>';
// button
echo "<tr><td><input type=\"reset\" name=\"reset\" value=\"Wissen\">"; echo "<input type=\"submit\" name=\"submit\" value=\"Formulier Versturen\"></tr></td>";
// sluit form + tabel
echo "</form>";
echo "</table>";
}
// versturen naar
else
{
// set datum
$datum = date("d.m.Y H:i");
// set ip
$ip = $_SERVER['REMOTE_ADDR'];
$inhoud_mail .= "\n";
$inhoud_mail .= "=======================================================\n";
$inhoud_mail .= "\n";
$inhoud_mail .= "- ingevulde contact formulier -\n";
$inhoud_mail .= " - www.GELUKGEVER.nl -\n";
$inhoud_mail .= "\n";
$inhoud_mail .= "=======================================================\n\n";
$inhoud_mail .= $_SERVER['SCRIPT_URI'] . "\n\n";
$inhoud_mail .= "Onderstaand wat U doorgegeven en/of gevraagd heeft: \n\n\n";
$inhoud_mail .= "Ter attentie van: " . $_POST['ter_attentie_van'] . "\n\n";
$inhoud_mail .= "Onderwerp: " . $_POST['onderwerp'] . "\n\n";
$inhoud_mail .= "Aanhef: " . $_POST['aanhef'] . "\n\n";
$inhoud_mail .= "Voornaam + Achternaam: " . $_POST['naam'] . "\n\n";
$inhoud_mail .= "E-mailadres: " . $_POST['mail'] . "\n\n";
$inhoud_mail .= "Vraag of opmerking:\n";
$inhoud_mail .= $_POST['msggs'] . "\n\n\n\n";
$inhoud_mail .= "=======================================================\n\n";
$inhoud_mail .= "Verstuurd op " . $datum . " via het ip " . $ip . "\n\n";
$inhoud_mail .= "=======================================================\n\n";
$headers = "From: " . $_POST['naam'] . " <" . $_POST['mail'] . ">";
$headers = stripslashes($headers);
$headers = str_replace("\n", "", $headers); // Verwijder \n
$headers = str_replace("\r", "", $headers); // Verwijder \r
$headers = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $headers)); // Slashes van quotes
$_POST['onderwerp'] = str_replace("\n", "", $_POST['onderwerp']); // Verwijder \n
$_POST['onderwerp'] = str_replace("\r", "", $_POST['onderwerp']); // Verwijder \r
$_POST['onderwerp'] = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $_POST['onderwerp'])); // Slashes van quotes
mail($mail_ontv, $onderwerp= Contactformulier, $inhoud_mail, "From: $naam <$mail>");
mail($mail, $onderwerp= Contactformulier, $inhoud_mail, "From: $naam <$mail_ontv>");
echo "<span style=\"color: green;\"><center><h3>Uw aanvraag is verstuurd</h3></center></span>";
echo "<center><p>Bedankt voor het insturen van uw aanvraag. <BR>We verwerken deze zo spoedig mogelijk</p></center>";
echo "<center><p>We zullen vertrouwelijk omgaan met de informatie die we van U krijgen, uw mail adres verstrekken wij niet aan derden.</p></center>";
echo "<center><a class=\"main\" href='index.php?page=contact'>terug naar contactpagina</a></center>";
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Bj?rn
Je moet bij de action ook opgeven dat die naar '?page=contact' moet. $_SERVER['PHP_SELF'] geeft die waarden niet mee.
Sorry ik weet nog niet hoe dat moet daar ik net begonnen ben met de cursus php 5 in 10 minuten.
bijvoorbaat dank, Björn
<form action="index.php?page=contact" method="POST">
Code (php)
1
2
3
2
3
<?php
echo '<form method="POST" ACTION="' . $_SERVER['PHP_SELF'] . '?page=contact">';
?>
echo '<form method="POST" ACTION="' . $_SERVER['PHP_SELF'] . '?page=contact">';
?>
Maar dan wel action in kleine letters.
Robert ik heb jouw manier gebruikt omdat deze overeenkomt met de manier van schrijven in mijn script en hij werkt, TOP.
ik ben weer helemaal gelukkig en nu ik zie wat er mee kan ga ik zeker verder met php script cursus.
nogmaals bedankt.
Douwe M schreef op 01.09.2008 08:54:
Maar dan wel action in kleine letters.
Ach ja, heb die regel uit Björn Grooteman zijn script gekopieerd en en de quotes aangepast. (plus de action een get waarde meegegeven)
Ook goed ;) Maar als je XHTML valid wilt zijn (<input />), moet je ook alle attribuutnamen in kleine letters doen ;)