[opgelost]Captcha zegt altijd foutieve invoer- Bedankt SanThe
Ik heb een hele simpele opdracht gekregen, een formuliertje maken in PHP. Ik moet hem alleen nog beveiligen en 1 probleem verhelpen.Dan is het af.
Nu het probleempje:
Ik heb een ReCaptcha blokje in het formulier staan, echter blijf ik zien dat ik de code fout invoer, ook al vul ik heb goed in.
Mijn code:
Wat is het probleem? Doe ik iets fout?
Nu het probleempje:
Ik heb een ReCaptcha blokje in het formulier staan, echter blijf ik zien dat ik de code fout invoer, ook al vul ik heb goed in.
Mijn code:
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
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
<?php
include "klacht_config.php";
?>
<?php
if (!isset($_POST['naar_captcha'])) {
?>
<html>
<form method="post">
Naam:<input type="text" name="naam"><br>
Mail:<input type="text" name="mail"><br>
Soort:<select name="soort">
<option value="vraag">Vraag</option>
<option value="klacht">Klacht</option>
</select><br>
<input type="submit" name="naar_captcha" value="Verder"><br>
</form>
<?php
} elseif (isset($_POST['naar_captcha'])) {
echo $_POST['soort'].":<br>";
?>
<form method="post">
<input type="hidden" name="eind_naam" value="<?php echo $_POST['naam']; ?>">
<input type="hidden" name="eind_mail" value="<?php echo $_POST['mail']; ?>">
<input type="hidden" name="eind_soort" value="<?php echo $_POST['soort']; ?>">
<textarea name="eind_tekst">Wat is uw <?php echo $_POST['soort']; ?>...</textarea><br>
<?php
echo recaptcha_get_html($_CONFIG['cap']['public_key']);
?>
<input type="submit" name="submit" value="Verstuur"><br>
</form>
<?php
}
if ($_SERVER['REQUEST_METHOD'] == "POST" AND isset($_POST['submit'])) {
if ($_POST['eind_naam'] == NULL) {
echo "<font color='red'><b>Vul wel een naam in</b></font>";
exit();
}
if ($_POST['eind_mail'] == NULL) {
echo "<font color='red'><b>Vul wel een e-mail adres in</b></font>";
exit();
}if ($_POST['eind_soort'] == NULL) {
echo "<font color='red'><b>Vul wel de soort reactie in</b></font>";
exit();
}if ($_POST['eind_tekst'] == NULL) {
echo "<font color='red'><b>Vul wel een tekst in</b></font>";
exit();
}
//CAPTCHA BEGIN
$resp = recaptcha_check_answer ($_CONFIG['cap']['private_key'],
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if (!$resp->is_valid) {
echo "Je hebt de captcha niet goed ingevuld.";
exit();
} elseif ($resp->is_valid) {
echo "CAP";
}
//CAPTCHA EIND
$query = mysqli_query($con, "INSERT INTO formulier_hollanderict
(naam,
mail,
soort,
tekst
)
VALUES
(
'".$_POST['eind_naam']."',
'".$_POST['eind_mail']."',
'".$_POST['eind_soort']."',
'".nl2br($_POST['eind_tekst'])."'
)
");
if ($query != FALSE) {
echo "<font color='green'><b>Een medewerker zal uw vraag zo snel mogelijk beantwoorden</b></font>";
exit();
} else {
echo "<font color='red'><b>Bij de verwerking van uw vraag is een fout opgetreden, probeer het opnieuw</b></font>";
exit();
}
}
?>
include "klacht_config.php";
?>
<?php
if (!isset($_POST['naar_captcha'])) {
?>
<html>
<form method="post">
Naam:<input type="text" name="naam"><br>
Mail:<input type="text" name="mail"><br>
Soort:<select name="soort">
<option value="vraag">Vraag</option>
<option value="klacht">Klacht</option>
</select><br>
<input type="submit" name="naar_captcha" value="Verder"><br>
</form>
<?php
} elseif (isset($_POST['naar_captcha'])) {
echo $_POST['soort'].":<br>";
?>
<form method="post">
<input type="hidden" name="eind_naam" value="<?php echo $_POST['naam']; ?>">
<input type="hidden" name="eind_mail" value="<?php echo $_POST['mail']; ?>">
<input type="hidden" name="eind_soort" value="<?php echo $_POST['soort']; ?>">
<textarea name="eind_tekst">Wat is uw <?php echo $_POST['soort']; ?>...</textarea><br>
<?php
echo recaptcha_get_html($_CONFIG['cap']['public_key']);
?>
<input type="submit" name="submit" value="Verstuur"><br>
</form>
<?php
}
if ($_SERVER['REQUEST_METHOD'] == "POST" AND isset($_POST['submit'])) {
if ($_POST['eind_naam'] == NULL) {
echo "<font color='red'><b>Vul wel een naam in</b></font>";
exit();
}
if ($_POST['eind_mail'] == NULL) {
echo "<font color='red'><b>Vul wel een e-mail adres in</b></font>";
exit();
}if ($_POST['eind_soort'] == NULL) {
echo "<font color='red'><b>Vul wel de soort reactie in</b></font>";
exit();
}if ($_POST['eind_tekst'] == NULL) {
echo "<font color='red'><b>Vul wel een tekst in</b></font>";
exit();
}
//CAPTCHA BEGIN
$resp = recaptcha_check_answer ($_CONFIG['cap']['private_key'],
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if (!$resp->is_valid) {
echo "Je hebt de captcha niet goed ingevuld.";
exit();
} elseif ($resp->is_valid) {
echo "CAP";
}
//CAPTCHA EIND
$query = mysqli_query($con, "INSERT INTO formulier_hollanderict
(naam,
mail,
soort,
tekst
)
VALUES
(
'".$_POST['eind_naam']."',
'".$_POST['eind_mail']."',
'".$_POST['eind_soort']."',
'".nl2br($_POST['eind_tekst'])."'
)
");
if ($query != FALSE) {
echo "<font color='green'><b>Een medewerker zal uw vraag zo snel mogelijk beantwoorden</b></font>";
exit();
} else {
echo "<font color='red'><b>Bij de verwerking van uw vraag is een fout opgetreden, probeer het opnieuw</b></font>";
exit();
}
}
?>
Wat is het probleem? Doe ik iets fout?
Gewijzigd op 01/12/2013 16:59:56 door Koen Hollander
Een POST met alleen een cijfer gaat niet werken. $_POST['1']
- SanThe - op 01/12/2013 16:46:59:
Een POST met alleen een cijfer gaat niet werken. $_POST['1']
Die heb ik nu aangepast, alsnog de zelfde fout
Doe eens een var_dump op $resp.
Dat heb ik gedaan, die gaf op het laatste deel aan dat de Private Key niet correct was, toen dacht ik... Hu??
Toen merkte ik dat hij heel streng is, ook met Sub domeinen. Eentje met het betreffende sub domein gemaakt en hoppa. Doet ie het. Heel erg bedankt voor de hulp. :)
Toen merkte ik dat hij heel streng is, ook met Sub domeinen. Eentje met het betreffende sub domein gemaakt en hoppa. Doet ie het. Heel erg bedankt voor de hulp. :)




