$_GET - $_POST
er is mij verteld dat dat komt omdat ik in mijn code alleen maar $_GET gebruik terwijl er in dat mail formulier $_POST wordt gebruikt, maar ik ben nog een echte beginner in php en heb dus geen flauw idee hoe ik dit op kan lossen :P bij deze dus hulp gevraagt plz.
de code van het formulier
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
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
<?
// 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 " Je bent je naam, e-mail adres, onderwerp of bericht vergeten in te vullen.<br>";
echo " Ook kan het zijn dat je een verkeerd e-mail adres hebt ingevuld.<p>";
}
// form + tabel
echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
echo "<form method=\"POST\" ACTION=\"" . $_SERVER['PHP_SELF'] . "\">";
// naam
echo "<tr><td> Naam:</td></tr>";
echo "<tr><td><input type=\"text\" style=\"color: #000000; background-color: #80adff; border: #000000 solid 1px; font-family: Verdana; margin-left: 15px\" name=\"naam\" value=\"" . $_POST['naam'] . "\"></td></tr>";
// space
echo "<tr><td> </td></tr>";
// mail
echo "<tr><td> E-mail adres:</td></tr>";
echo "<tr><td><input type=\"text\" style=\"color: #000000; background-color: #80adff; border: #000000 solid 1px; font-family: Verdana; margin-left: 15px\" name=\"mail\" value=\"" . $_POST['mail'] . "\"></td></tr>";
// space
echo "<tr><td> </td></tr>";
// mail
echo "<tr><td> Onderwerp:</td></tr>";
echo "<tr><td><input type=\"text\" style=\"color: #000000; background-color: #80adff; border: #000000 solid 1px; font-family: Verdana; margin-left: 15px\" name=\"onderwerp\" value=\"" . $_POST['onderwerp'] . "\"></td></tr>";
// space
echo "<tr><td> </td></tr>";
// mail
echo "<tr><td> Bericht:</td></tr>";
echo "<tr><td><TEXTAREA style=\"color: #000000; background-color: #80adff; border: #000000 solid 1px; font-family: Verdana; margin-left: 15px\" name=\"msggs\" ROWS=\"6\" COLS=\"45\">" . htmlentities($_POST['msggs']) . "</TEXTAREA></td></tr>";
// space
echo "<tr><td> </td></tr>";
// button
echo "<tr><td> </td></tr>";
echo "<tr><td><input type=\"submit\" style=\"color: #000000; background-color: #80adff; border: #000000 solid 1px; font-family: Verdana; margin-left: 15px\" name=\"submit\" value=\"Versturen\"></td></tr>";
// 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 .= "Ingevulde contact formulier\n";
$inhoud_mail .= "===================================================\n\n";
$inhoud_mail .= "Naam: " . $_POST['naam'] . "\n";
$inhoud_mail .= "E-mail adres: " . $_POST['mail'] . "\n";
$inhoud_mail .= "Bericht:\n";
$inhoud_mail .= $_POST['msggs'] . "\n\n";
$inhoud_mail .= "Verstuurd op $datum via het ip " . $ip . "\n\n";
$inhoud_mail .= "===================================================\n\n";
// --------------------
// spambot protectie
// ------
// van de tutorial: http://www.phphulp.nl/php/tutorials/10/340/
// ------
$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, $_POST['onderwerp'], $inhoud_mail, $headers);
echo "<h1>Je e-mail is verstuurd</h1>";
echo "<p>Bedankt voor het versturen van een e-mail. Je zult snel een antwoord ";
echo "krijgen indien dit nodig is.</p>";
echo "<p>We nemen alles serieus en zullen vertrouwelijk omgaan met de informatie ";
echo "die we binnen krijgen. Je e-mail adres zal nooit aan derden worden verstrekt.</p>";
}
?>
// 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 " Je bent je naam, e-mail adres, onderwerp of bericht vergeten in te vullen.<br>";
echo " Ook kan het zijn dat je een verkeerd e-mail adres hebt ingevuld.<p>";
}
// form + tabel
echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
echo "<form method=\"POST\" ACTION=\"" . $_SERVER['PHP_SELF'] . "\">";
// naam
echo "<tr><td> Naam:</td></tr>";
echo "<tr><td><input type=\"text\" style=\"color: #000000; background-color: #80adff; border: #000000 solid 1px; font-family: Verdana; margin-left: 15px\" name=\"naam\" value=\"" . $_POST['naam'] . "\"></td></tr>";
// space
echo "<tr><td> </td></tr>";
echo "<tr><td> E-mail adres:</td></tr>";
echo "<tr><td><input type=\"text\" style=\"color: #000000; background-color: #80adff; border: #000000 solid 1px; font-family: Verdana; margin-left: 15px\" name=\"mail\" value=\"" . $_POST['mail'] . "\"></td></tr>";
// space
echo "<tr><td> </td></tr>";
echo "<tr><td> Onderwerp:</td></tr>";
echo "<tr><td><input type=\"text\" style=\"color: #000000; background-color: #80adff; border: #000000 solid 1px; font-family: Verdana; margin-left: 15px\" name=\"onderwerp\" value=\"" . $_POST['onderwerp'] . "\"></td></tr>";
// space
echo "<tr><td> </td></tr>";
echo "<tr><td> Bericht:</td></tr>";
echo "<tr><td><TEXTAREA style=\"color: #000000; background-color: #80adff; border: #000000 solid 1px; font-family: Verdana; margin-left: 15px\" name=\"msggs\" ROWS=\"6\" COLS=\"45\">" . htmlentities($_POST['msggs']) . "</TEXTAREA></td></tr>";
// space
echo "<tr><td> </td></tr>";
// button
echo "<tr><td> </td></tr>";
echo "<tr><td><input type=\"submit\" style=\"color: #000000; background-color: #80adff; border: #000000 solid 1px; font-family: Verdana; margin-left: 15px\" name=\"submit\" value=\"Versturen\"></td></tr>";
// 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 .= "Ingevulde contact formulier\n";
$inhoud_mail .= "===================================================\n\n";
$inhoud_mail .= "Naam: " . $_POST['naam'] . "\n";
$inhoud_mail .= "E-mail adres: " . $_POST['mail'] . "\n";
$inhoud_mail .= "Bericht:\n";
$inhoud_mail .= $_POST['msggs'] . "\n\n";
$inhoud_mail .= "Verstuurd op $datum via het ip " . $ip . "\n\n";
$inhoud_mail .= "===================================================\n\n";
// --------------------
// spambot protectie
// ------
// van de tutorial: http://www.phphulp.nl/php/tutorials/10/340/
// ------
$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, $_POST['onderwerp'], $inhoud_mail, $headers);
echo "<h1>Je e-mail is verstuurd</h1>";
echo "<p>Bedankt voor het versturen van een e-mail. Je zult snel een antwoord ";
echo "krijgen indien dit nodig is.</p>";
echo "<p>We nemen alles serieus en zullen vertrouwelijk omgaan met de informatie ";
echo "die we binnen krijgen. Je e-mail adres zal nooit aan derden worden verstrekt.</p>";
}
?>
code voor de pagina's
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Bij voorbaad dank
In je pagina, bijvoorbeeld contact.php kun je plaatsen ipv server self. Het is dan mogelijk om een get variable mee te geven: contact.php?id=90
Als je form post gebruikt, en je action staat alleen op de phpself, die heeft niet je get variablen van je pagina, die zou je dan kunnen opvangen en in de pagina met action stoppen.
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$pagina = $_SERVER['PHP_SELF'] ;
$get = 'id='.$_GET['id'];
// ... even verder
echo '<form method="POST" ACTION="'.$pagina.$get'">';
?>
$pagina = $_SERVER['PHP_SELF'] ;
$get = 'id='.$_GET['id'];
// ... even verder
echo '<form method="POST" ACTION="'.$pagina.$get'">';
?>
Gewijzigd op 01/01/1970 01:00:00 door Guido van C
<FORM METHOD="POST" ACTION="?go=contact">
Tobias schreef op 24.04.2007 20:38:
Je kunt in de action van het formulier je GET waarde geven, bijvoorbeeld:
<FORM METHOD="POST" ACTION="?go=contact">
<FORM METHOD="POST" ACTION="?go=contact">
(y) helemaal geweldig probleem opgelost :)