captcha werkt wel formulier niet
Ik heb de captcha codes in me email pagina gezet, hij doet het wel maar me email pagina doet het nog steeds niet.
ik ben al 2 weken bezig maar het is me niet gelukt.
Een beetje hulp stel ik zeer op prijs
alvast bedankt
hier zijn de paginas
voorbeeld is op www.taxischipholservice.be en dan contact pagina
Pagina 1
contact.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
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
<h1>Contact ons</h1><br />
<form method="post" action="contact_email.php">
<table>
<tr>
<td>Naam</td>
<td>:</td>
<td><input type="text" value="" name="naam">
</td>
</tr>
<tr>
<td>Telefoon</td><td>:</td>
<td>
<input type="text" value="" name="telefoon">
</td>
</tr>
<tr>
<td>E-mail</td><td>:</td>
<td>
<input type="text" value="" name="email">
</td>
</tr>
<tr>
<td>Onderwerp</td><td>:</td>
<td>
<input type="text" value="" name="onderwerp">
</td>
</tr><tr>
<td>Opmerkingen </td><td>:</td>
<td>
<textarea name="opmerkingen" Rows="5" Cols="49"></textarea>
</td>
</tr>
<tr>
<td>Word verification</td><td>:</td>
<td>
<img src="../../securimage/securimage_show.php?sid=<?php echo md5(uniqid(time())); ?>"><br />
<input type="text" name="code" />
</td>
</tr>
<tr>
<td> </td><td> </td>
<td><INPUT TYPE="checkbox" NAME="usermail" value="usermail"><small>E-mail een kopie van dit bericht naar uw eigen e-mailadres.</small>
</td>
</tr>
<tr>
<td> </td><td> </td>
<td><input type="submit" value=" Verzenden " name="submit">
<input type="reset" value=" Opnieuw "></td>
</tr>
</table>
</form>
<form method="post" action="contact_email.php">
<table>
<tr>
<td>Naam</td>
<td>:</td>
<td><input type="text" value="" name="naam">
</td>
</tr>
<tr>
<td>Telefoon</td><td>:</td>
<td>
<input type="text" value="" name="telefoon">
</td>
</tr>
<tr>
<td>E-mail</td><td>:</td>
<td>
<input type="text" value="" name="email">
</td>
</tr>
<tr>
<td>Onderwerp</td><td>:</td>
<td>
<input type="text" value="" name="onderwerp">
</td>
</tr><tr>
<td>Opmerkingen </td><td>:</td>
<td>
<textarea name="opmerkingen" Rows="5" Cols="49"></textarea>
</td>
</tr>
<tr>
<td>Word verification</td><td>:</td>
<td>
<img src="../../securimage/securimage_show.php?sid=<?php echo md5(uniqid(time())); ?>"><br />
<input type="text" name="code" />
</td>
</tr>
<tr>
<td> </td><td> </td>
<td><INPUT TYPE="checkbox" NAME="usermail" value="usermail"><small>E-mail een kopie van dit bericht naar uw eigen e-mailadres.</small>
</td>
</tr>
<tr>
<td> </td><td> </td>
<td><input type="submit" value=" Verzenden " name="submit">
<input type="reset" value=" Opnieuw "></td>
</tr>
</table>
</form>
Pagina 2
contact_email.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
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
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
<?php
// Data Form
$Onderwerp = $_POST['onderwerp'];
$Van = $_POST['email'];
$Ip .= $_SERVER['REMOTE_ADDR'];
$referer = $_SERVER['HTTP_REFERER'];
$logfile = date("d-m-Y, H:i:s", time());
if (isset($_POST["naam"])) $naam = $_POST["naam"];
if (isset($_POST["telefoon"])) $telefoon = $_POST["telefoon"];
if (isset($_POST["email"])) $email = $_POST["email"];
if (isset($_POST["onderwerp"])) $onderwerp = $_POST["onderwerp"];
if (isset($_POST["opmerkingen"])) $opmerkingen = $_POST["opmerkingen"];
$errors = array();
if (empty($naam)) $errors[] = "Naam";
if (empty($telefoon)) $errors[] = "Telefoon";
if(!preg_match ("/^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,6}$/i", $_POST['email'])){ $errors[] = 'Correct e-mail'; }
if (empty($onderwerp)) $errors[] = "Onderwerp";
if (empty($opmerkingen)) $errors[] = "Opmerkingen";
if (empty($code)) $errors[] = "Code";
if (empty($_POST)) {
} else { //form is posted
include("../../securimage/securimage.php");
$img = new Securimage();
$valid = $img->check($_POST['code']);
if($valid == true) {
echo "<center>Thanks, you entered the correct code.</center>";
} else {
echo "<center>Sorry, the code you entered was invalid. <a href=\"javascript:history.go(-1)\">Go back</a> to try again.</center>";
}
}
if ((count($errors)) != 0){
echo "<h1>Er is fout opgetreden, controleer de gegevens hieronder:</h1><br><font color='red'>";
for ($i=0; $i<count($errors); $i++){
echo $errors[$i]." invullen s.v.p.<br>";
}
echo "</font><br />";
echo "<a href='javascript:javascript:history.go(-1)'><font color='Blue'>Terug</font></a>";
} else {
if(isset($_POST['usermail'])) mail("$Van", "$Onderwerp", "Contact ons
Naam: $naam
Telefoon: $telefoon
E-mail: $email
Onderwerp: $onderwerp
Opmerkingen: $opmerkingen", "From: $Van");
require "../libs/db.php";
$sql = "INSERT INTO emailcontact VALUES (NULL, '$naam', '$telefoon', '$email', '$onderwerp', '$opmerkingen', '$logfile', '$Ip', '$referer')";
$res = mysql_query($sql);
// $res = 1;
if ($res){
require "../libs/config.php";
$ord = mysql_query("SELECT id FROM contactemail ORDER BY id DESC LIMIT 1");
$row = mysql_fetch_row($ord);
if (!empty($email)){
$receiver = $email;
}
$aan = "[email protected]";
$onderwerp = "$onderwerp";
$reservering = "
<h3>Contact ons </h3>
<table>
<tr><td>Naam</td><td>:</td><td>$naam</td></tr>
<tr><td>Telefoon</td><td>:</td><td>$telefoon</td></tr>
<tr><td>E-Mail</td><td>:</td><td>$email</td></tr>
<tr><td>Onderwerp</td><td>:</td><td>$onderwerp</td></tr>
<tr><td>Opmerkingen</td><td>:</td><td>$opmerkingen</td></tr>
</table>";
$headers = "From: ".$naam." <".$email.">\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "Reply-To: ".$naam." <".$email.">\r\n";
mail($aan, $onderwerp, $reservering, $headers);
?>
<h1>Contact ons </h1><br />
<strong>De volgende informatie is verzonden. We zullen zo spoedig mogelijk uw e-mail beantwoorden!</strong>
<br /><br />
<table>
<tr><td>Naam</td><td>:</td><td><?php echo $naam?></td></tr>
<tr><td>Telefoon</td><td>:</td><td><?php echo $telefoon?></td></tr>
<tr><td>E-mail</td><td>:</td><td><?php echo $email?></td></tr>
<tr><td>Onderwerp</td><td>:</td><td><?php echo $onderwerp?></td></tr>
<tr><td>Opmerkingen</td><td>:</td><td><?php echo $opmerkingen?></td></tr>
</table>
<?php
mysql_close($link);
} else {
echo "<h2>Er is fout opgetreden, probeer opnieuw</h2>";
}
}
?>
// Data Form
$Onderwerp = $_POST['onderwerp'];
$Van = $_POST['email'];
$Ip .= $_SERVER['REMOTE_ADDR'];
$referer = $_SERVER['HTTP_REFERER'];
$logfile = date("d-m-Y, H:i:s", time());
if (isset($_POST["naam"])) $naam = $_POST["naam"];
if (isset($_POST["telefoon"])) $telefoon = $_POST["telefoon"];
if (isset($_POST["email"])) $email = $_POST["email"];
if (isset($_POST["onderwerp"])) $onderwerp = $_POST["onderwerp"];
if (isset($_POST["opmerkingen"])) $opmerkingen = $_POST["opmerkingen"];
$errors = array();
if (empty($naam)) $errors[] = "Naam";
if (empty($telefoon)) $errors[] = "Telefoon";
if(!preg_match ("/^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,6}$/i", $_POST['email'])){ $errors[] = 'Correct e-mail'; }
if (empty($onderwerp)) $errors[] = "Onderwerp";
if (empty($opmerkingen)) $errors[] = "Opmerkingen";
if (empty($code)) $errors[] = "Code";
if (empty($_POST)) {
} else { //form is posted
include("../../securimage/securimage.php");
$img = new Securimage();
$valid = $img->check($_POST['code']);
if($valid == true) {
echo "<center>Thanks, you entered the correct code.</center>";
} else {
echo "<center>Sorry, the code you entered was invalid. <a href=\"javascript:history.go(-1)\">Go back</a> to try again.</center>";
}
}
if ((count($errors)) != 0){
echo "<h1>Er is fout opgetreden, controleer de gegevens hieronder:</h1><br><font color='red'>";
for ($i=0; $i<count($errors); $i++){
echo $errors[$i]." invullen s.v.p.<br>";
}
echo "</font><br />";
echo "<a href='javascript:javascript:history.go(-1)'><font color='Blue'>Terug</font></a>";
} else {
if(isset($_POST['usermail'])) mail("$Van", "$Onderwerp", "Contact ons
Naam: $naam
Telefoon: $telefoon
E-mail: $email
Onderwerp: $onderwerp
Opmerkingen: $opmerkingen", "From: $Van");
require "../libs/db.php";
$sql = "INSERT INTO emailcontact VALUES (NULL, '$naam', '$telefoon', '$email', '$onderwerp', '$opmerkingen', '$logfile', '$Ip', '$referer')";
$res = mysql_query($sql);
// $res = 1;
if ($res){
require "../libs/config.php";
$ord = mysql_query("SELECT id FROM contactemail ORDER BY id DESC LIMIT 1");
$row = mysql_fetch_row($ord);
if (!empty($email)){
$receiver = $email;
}
$aan = "[email protected]";
$onderwerp = "$onderwerp";
$reservering = "
<h3>Contact ons </h3>
<table>
<tr><td>Naam</td><td>:</td><td>$naam</td></tr>
<tr><td>Telefoon</td><td>:</td><td>$telefoon</td></tr>
<tr><td>E-Mail</td><td>:</td><td>$email</td></tr>
<tr><td>Onderwerp</td><td>:</td><td>$onderwerp</td></tr>
<tr><td>Opmerkingen</td><td>:</td><td>$opmerkingen</td></tr>
</table>";
$headers = "From: ".$naam." <".$email.">\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "Reply-To: ".$naam." <".$email.">\r\n";
mail($aan, $onderwerp, $reservering, $headers);
?>
<h1>Contact ons </h1><br />
<strong>De volgende informatie is verzonden. We zullen zo spoedig mogelijk uw e-mail beantwoorden!</strong>
<br /><br />
<table>
<tr><td>Naam</td><td>:</td><td><?php echo $naam?></td></tr>
<tr><td>Telefoon</td><td>:</td><td><?php echo $telefoon?></td></tr>
<tr><td>E-mail</td><td>:</td><td><?php echo $email?></td></tr>
<tr><td>Onderwerp</td><td>:</td><td><?php echo $onderwerp?></td></tr>
<tr><td>Opmerkingen</td><td>:</td><td><?php echo $opmerkingen?></td></tr>
</table>
<?php
mysql_close($link);
} else {
echo "<h2>Er is fout opgetreden, probeer opnieuw</h2>";
}
}
?>
Zoek even bij "Scripts" ;)
Mijn contact formulier werkt samen met mijn database, daarom wil ik captcha in mijn formulier plaatsen.
- Je mist nog behoorlijk wat beveiligingen.
- Je script gevoelig voor mail injection.
- Verschillende vars moeten buiten de quotes
en niet overbodig:
- Een beetje comment in je script zo is het lastig zoeken
- Formulier uit je tabel en opmaken met css
- Mysql_close is overbodig
- Netter inspringen enzo
Als dit opgelost is kunnen we verder kijken....
Code (php)
Waar het je die captcha code vandaan? Captcha variabelen in je broncode weergeven? Waarom moet die variabel in je formulier gemaakt worden?! Verder roep je eerst een lost script aan, en later is je Captcha ineens een class... als het een class is lijkt het mij logisch dat je deze ook zodanig in je formulier gebruikt.
Ik denk dat je nodig een ander Captcha script moet zoeken. Kijk eens naar:
http://www.sitemasters.be/tutorials/1/1/463/PHP/Captcha_Beveiliging_Maken