reCAPTCHA valideert niet
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
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
if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST))
{
$aFouten = array();
if($_POST['voornaam'] == '')
{
$aFouten[] = 'Je hebt geen voornaam ingevuld';
}if($_POST['track'] == '')
{
$aFouten[] = 'Je hebt nog geen openingsnummer gekozen!';
}
if(count($aFouten) != 0)
{
echo "<div id=\"fouten\">
De volgende fouten zijn opgetreden bij het invoeren van je gegevens:
<BR /><ul type=\"square\">";
for($Fi = 0; $Fi < count($aFouten); $Fi++)
{
echo "<li>".$aFouten[$Fi]."</li>";
}
echo "</ul>
<a href=\"javascript:history.go(-1);\" class=\"linkterug\">Klik hier om terug te keren en het formulier goed in te vullen.</a>
</div>";
}
else
{
require_once('recaptchalib.php');
// Get a key from https://www.google.com/recaptcha/admin/create
$publickey = "6LeyXs4SAAAAACeQhD2pbOPYFJsjuF8bLwYblu-D";
$privatekey = "6LeyXs4SAAAAAEzvulClhzKLhRuqO_MlqnKps9VQ";
# the response from reCAPTCHA
$resp = null;
# the error code from reCAPTCHA, if any
$error = 'De reCAPTCHA code klopt niet. Probeer het opnieuw';
# was there a reCAPTCHA response?
if ($_POST["recaptcha_response_field"]) {
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if ($resp->is_valid) {
echo "You got it!";
} else {
# set the error code so that we can display it
$error = $resp->error;
}
}
mysql_query("INSERT INTO bruiloft (voornaam,track) VALUES ('".mysql_real_escape_string($_POST['voornaam'])."','".mysql_real_escape_string($_POST['track'])."')") or die (mysql_error());
}
}
else
{
?>
{
$aFouten = array();
if($_POST['voornaam'] == '')
{
$aFouten[] = 'Je hebt geen voornaam ingevuld';
}if($_POST['track'] == '')
{
$aFouten[] = 'Je hebt nog geen openingsnummer gekozen!';
}
if(count($aFouten) != 0)
{
echo "<div id=\"fouten\">
De volgende fouten zijn opgetreden bij het invoeren van je gegevens:
<BR /><ul type=\"square\">";
for($Fi = 0; $Fi < count($aFouten); $Fi++)
{
echo "<li>".$aFouten[$Fi]."</li>";
}
echo "</ul>
<a href=\"javascript:history.go(-1);\" class=\"linkterug\">Klik hier om terug te keren en het formulier goed in te vullen.</a>
</div>";
}
else
{
require_once('recaptchalib.php');
// Get a key from https://www.google.com/recaptcha/admin/create
$publickey = "6LeyXs4SAAAAACeQhD2pbOPYFJsjuF8bLwYblu-D";
$privatekey = "6LeyXs4SAAAAAEzvulClhzKLhRuqO_MlqnKps9VQ";
# the response from reCAPTCHA
$resp = null;
# the error code from reCAPTCHA, if any
$error = 'De reCAPTCHA code klopt niet. Probeer het opnieuw';
# was there a reCAPTCHA response?
if ($_POST["recaptcha_response_field"]) {
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if ($resp->is_valid) {
echo "You got it!";
} else {
# set the error code so that we can display it
$error = $resp->error;
}
}
mysql_query("INSERT INTO bruiloft (voornaam,track) VALUES ('".mysql_real_escape_string($_POST['voornaam'])."','".mysql_real_escape_string($_POST['track'])."')") or die (mysql_error());
}
}
else
{
?>
Verderop staat het formulier als volgt:
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
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
<form method="POST" action="poll.php">
<table border="0" width="100%">
<tr>
<td width="45%">
Voornaam:
</td>
<td width="55%">
<input type="text" name="voornaam" id="voornaam" size="20" maxlength="30" />
</td>
</tr>
<tr>
<td width="45%">
Met welk nummer moeten we het feest openen?
</td>
<td width="55%">
<select name="track" id="track">
<option value="" SELECTED>Maak een keuze</option>
<option value="move like jagger">Maroon 5 ft. Christina Aguilera - Move Like Jagger</option>
<option value="sex on fire">Kings of Leon - Sex on Fire</option>
</select>
</td>
</tr>
<tr>
<td width="45%">
</td>
<td width="55%">
<?php
require_once('recaptchalib.php');
// Get a key from https://www.google.com/recaptcha/admin/create
$publickey = "6LeyXs4SAAAAACeQhD2pbOPYFJsjuF8bLwYblu-D";
echo recaptcha_get_html($publickey, $error);
?>
</td>
</tr>
<tr>
<td width="45%">
</td>
<td width="55%">
<input type="reset" name="reset" value="Beginwaarden" />
<input type="submit" name="submit" value="Verzenden" />
</td>
</tr>
</table>
</form>
<table border="0" width="100%">
<tr>
<td width="45%">
Voornaam:
</td>
<td width="55%">
<input type="text" name="voornaam" id="voornaam" size="20" maxlength="30" />
</td>
</tr>
<tr>
<td width="45%">
Met welk nummer moeten we het feest openen?
</td>
<td width="55%">
<select name="track" id="track">
<option value="" SELECTED>Maak een keuze</option>
<option value="move like jagger">Maroon 5 ft. Christina Aguilera - Move Like Jagger</option>
<option value="sex on fire">Kings of Leon - Sex on Fire</option>
</select>
</td>
</tr>
<tr>
<td width="45%">
</td>
<td width="55%">
<?php
require_once('recaptchalib.php');
// Get a key from https://www.google.com/recaptcha/admin/create
$publickey = "6LeyXs4SAAAAACeQhD2pbOPYFJsjuF8bLwYblu-D";
echo recaptcha_get_html($publickey, $error);
?>
</td>
</tr>
<tr>
<td width="45%">
</td>
<td width="55%">
<input type="reset" name="reset" value="Beginwaarden" />
<input type="submit" name="submit" value="Verzenden" />
</td>
</tr>
</table>
</form>
Gewijzigd op 01/03/2012 23:42:24 door Bart Crum
Scheelt je een boel escapen en werkt overzichtelijker:
echo "<div id=\"fouten\"> --> echo '<div id="fouten">
Als ik kijk op http://code.google.com/intl/nl/apis/recaptcha/docs/php.html zie ik dat ze bij het controleren _niet_ de publickey opnemen.
Obelix en Idefix op 02/03/2012 06:16:08:
Als ik kijk op http://code.google.com/intl/nl/apis/recaptcha/docs/php.html zie ik dat ze bij het controleren _niet_ de publickey opnemen.
Als ik kijk op http://code.google.com/intl/nl/apis/recaptcha/docs/php.html zie ik dat ze bij het controleren _niet_ de publickey opnemen.
Maar dat kan nooit het probleem zijn, lijkt me. Dat is een variabel. Als die niet noodzakelijk is, wordt die niet gebruikt. Ik denk vrijwel zeker te weten dat het probleem zit in de plaatsing in de code. Maar waar moet het wel staan?
Toevoeging op 02/03/2012 11:32:44:
Het lijkt me dat het moet staan in het gedeelte waar de andere velden van het formulier gevalideerd worden. Ik heb dat dus geprobeerd, maar ook dat werkt niet. Ik kan het formulier blijven opsturen zonder captcha in te vullen. Zie de code hieronder. Ik denk wel dat ik dichtbij ben..
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
require_once('recaptchalib.php');
// Get a key from https://www.google.com/recaptcha/admin/create
$publickey = '6LeyXs4SAAAAACeQhD2pbOPYFJsjuF8bLwYblu-D';
$privatekey = '6LeyXs4SAAAAAEzvulClhzKLhRuqO_MlqnKps9VQ';
# the response from reCAPTCHA
$resp = null;
# the error code from reCAPTCHA, if any
$error = 'De reCAPTCHA code klopt niet. Probeer het opnieuw';
?>
require_once('recaptchalib.php');
// Get a key from https://www.google.com/recaptcha/admin/create
$publickey = '6LeyXs4SAAAAACeQhD2pbOPYFJsjuF8bLwYblu-D';
$privatekey = '6LeyXs4SAAAAAEzvulClhzKLhRuqO_MlqnKps9VQ';
# the response from reCAPTCHA
$resp = null;
# the error code from reCAPTCHA, if any
$error = 'De reCAPTCHA code klopt niet. Probeer het opnieuw';
?>
Dit gedeelte staat helemaal bovenaan het script. Pas hieronder volgt de volgende validatie lus:
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
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
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST))
{
$aFouten = array();
if($_POST['voornaam'] == '')
{
$aFouten[] = 'Je hebt geen voornaam ingevuld';
}
if($_POST['track'] == '')
{
$aFouten[] = 'Je hebt nog geen openingsnummer gekozen!';
}
# was there a reCAPTCHA response?
if($_POST['recaptcha_response_field']) {
$resp = recaptcha_check_answer ($privatekey,
$_SERVER['REMOTE_ADDR'],
$_POST['recaptcha_challenge_field'],
$_POST['recaptcha_response_field']);
if ($resp->error) {
$aFouten[] = $error;
}
}
if(count($aFouten) != 0)
{
echo '<div id="fouten">
De volgende fouten zijn opgetreden bij het invoeren van je gegevens:
<BR /><ul type="square">';
for($Fi = 0; $Fi < count($aFouten); $Fi++)
{
echo '<li>'.$aFouten[$Fi].'</li>';
}
echo '</ul>
<a href="javascript:history.go(-1);" class="linkterug">Klik hier om terug te keren en het formulier goed in te vullen.</a>
</div>';
}
else
{
mysql_query.......?>
if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST))
{
$aFouten = array();
if($_POST['voornaam'] == '')
{
$aFouten[] = 'Je hebt geen voornaam ingevuld';
}
if($_POST['track'] == '')
{
$aFouten[] = 'Je hebt nog geen openingsnummer gekozen!';
}
# was there a reCAPTCHA response?
if($_POST['recaptcha_response_field']) {
$resp = recaptcha_check_answer ($privatekey,
$_SERVER['REMOTE_ADDR'],
$_POST['recaptcha_challenge_field'],
$_POST['recaptcha_response_field']);
if ($resp->error) {
$aFouten[] = $error;
}
}
if(count($aFouten) != 0)
{
echo '<div id="fouten">
De volgende fouten zijn opgetreden bij het invoeren van je gegevens:
<BR /><ul type="square">';
for($Fi = 0; $Fi < count($aFouten); $Fi++)
{
echo '<li>'.$aFouten[$Fi].'</li>';
}
echo '</ul>
<a href="javascript:history.go(-1);" class="linkterug">Klik hier om terug te keren en het formulier goed in te vullen.</a>
</div>';
}
else
{
mysql_query.......?>
Gewijzigd op 02/03/2012 11:33:18 door Bart Crum
if($_POST['recaptcha_response_field'])--> je vergelijkt nergens mee.