captcha.php gaat fout
voor een post sript gebruik ik captcha.php maar werkt niet op de internet explorer 9 werkt wel met googlechrome.
hoe kan ik het zo aan passen of 1 maken dat het werkt voor alle browser?
sorry voor het hele sript maar ik denk dat er daar ergen wat fout in gaat.
hoe kan ik het zo aan passen of 1 maken dat het werkt voor alle browser?
sorry voor het hele sript maar ik denk dat er daar ergen wat fout in gaat.
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
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
<?php
############################################
# Filename : captcha.php #
#------------------------------------------#
# Written By : Thijs Ferket #
# Website : www.ferket.net #
#------------------------------------------#
############################################
session_start();
// Captcha keygenerator
function keygen($aantal)
{
$tekens = array_merge(range('A', 'F'), array('H', 'J', 'K', 'M', 'N'), range('P', 'Z'));
$randomstring = "";
for($i=1; $i <= $aantal; $i++)
{
shuffle($tekens);
$randomstring .= $tekens[0];
}
return $randomstring;
}
$random_code = keygen(4);
$_SESSION['captcha_code'] = $random_code;
$breedte = 90;
$hoogte = 30;
header("content-type: image/png");
$afbeelding = imagecreate($breedte, $hoogte);
$achtergrond = imagecolorallocate($afbeelding, 255, 255, 255);
$font = "fonts/arial.ttf";
$kleur = imagecolorallocate($afbeelding, 186, 197, 214);
imagerectangle($afbeelding, 0, 0, $breedte-1, $hoogte-1, $kleur);
$aantal_punten = rand(250, 500);
for ($i = 0; $i < $aantal_punten; $i++)
{
imagesetpixel($afbeelding, rand(1, $breedte-1), rand(1, $hoogte-1), $kleur);
}
$aantal_lijnen = rand(5, 8);
$aantal_cirkels = rand(5, 8);
$aantal_lijnen2 = rand(2, 6);
$spread = 100;
for($i = 0; $i < $aantal_lijnen; $i++)
{
$y_begin = rand(-$spread, $hoogte + $spread);
$y_eind = rand(-$spread, $hoogte + $spread);
$kleur = imagecolorallocate($afbeelding, rand(170, 255), rand(170, 255), rand(170, 255));
imageline($afbeelding, 0, $y_begin, $breedte, $y_eind, $kleur);
}
for($i = 0; $i < $aantal_cirkels; $i++)
{
$y_center = rand(1, $breedte-1);
$x_center = rand(1, $hoogte-1);
$kleur = imagecolorallocate($afbeelding, rand(170, 255), rand(170, 255), rand(170, 255));
imageellipse($afbeelding, $y_center, $y_center, rand(50, 100), rand(50, 100), $kleur);
}
$tekst = str_split($random_code);
for ($i = 0; $i < count($tekst); $i++)
{
$xas = rand(5, 15);
$yas = rand(18, 25);
$graden = rand(-25, 25);
$grootte = rand(12,14);
$kleur = imagecolorallocate($afbeelding, rand(0, 100), rand(0, 100), rand(0, 100));
imagettftext($afbeelding, $grootte, $graden, $i * 20 + $xas, $yas, $kleur, $font, $tekst[$i]);
}
for($i = 0; $i < $aantal_lijnen2; $i++)
{
$y_begin = rand(-$spread, $hoogte + $spread);
$y_eind = rand(-$spread, $hoogte + $spread);
$kleur = imagecolorallocate($afbeelding, rand(170, 255), rand(170, 255), rand(170, 255));
imageline($afbeelding, 0, $y_begin, $breedte, $y_eind, $kleur);
}
imagepng($afbeelding);
imagedestroy($afbeelding);
?>
############################################
# Filename : captcha.php #
#------------------------------------------#
# Written By : Thijs Ferket #
# Website : www.ferket.net #
#------------------------------------------#
############################################
session_start();
// Captcha keygenerator
function keygen($aantal)
{
$tekens = array_merge(range('A', 'F'), array('H', 'J', 'K', 'M', 'N'), range('P', 'Z'));
$randomstring = "";
for($i=1; $i <= $aantal; $i++)
{
shuffle($tekens);
$randomstring .= $tekens[0];
}
return $randomstring;
}
$random_code = keygen(4);
$_SESSION['captcha_code'] = $random_code;
$breedte = 90;
$hoogte = 30;
header("content-type: image/png");
$afbeelding = imagecreate($breedte, $hoogte);
$achtergrond = imagecolorallocate($afbeelding, 255, 255, 255);
$font = "fonts/arial.ttf";
$kleur = imagecolorallocate($afbeelding, 186, 197, 214);
imagerectangle($afbeelding, 0, 0, $breedte-1, $hoogte-1, $kleur);
$aantal_punten = rand(250, 500);
for ($i = 0; $i < $aantal_punten; $i++)
{
imagesetpixel($afbeelding, rand(1, $breedte-1), rand(1, $hoogte-1), $kleur);
}
$aantal_lijnen = rand(5, 8);
$aantal_cirkels = rand(5, 8);
$aantal_lijnen2 = rand(2, 6);
$spread = 100;
for($i = 0; $i < $aantal_lijnen; $i++)
{
$y_begin = rand(-$spread, $hoogte + $spread);
$y_eind = rand(-$spread, $hoogte + $spread);
$kleur = imagecolorallocate($afbeelding, rand(170, 255), rand(170, 255), rand(170, 255));
imageline($afbeelding, 0, $y_begin, $breedte, $y_eind, $kleur);
}
for($i = 0; $i < $aantal_cirkels; $i++)
{
$y_center = rand(1, $breedte-1);
$x_center = rand(1, $hoogte-1);
$kleur = imagecolorallocate($afbeelding, rand(170, 255), rand(170, 255), rand(170, 255));
imageellipse($afbeelding, $y_center, $y_center, rand(50, 100), rand(50, 100), $kleur);
}
$tekst = str_split($random_code);
for ($i = 0; $i < count($tekst); $i++)
{
$xas = rand(5, 15);
$yas = rand(18, 25);
$graden = rand(-25, 25);
$grootte = rand(12,14);
$kleur = imagecolorallocate($afbeelding, rand(0, 100), rand(0, 100), rand(0, 100));
imagettftext($afbeelding, $grootte, $graden, $i * 20 + $xas, $yas, $kleur, $font, $tekst[$i]);
}
for($i = 0; $i < $aantal_lijnen2; $i++)
{
$y_begin = rand(-$spread, $hoogte + $spread);
$y_eind = rand(-$spread, $hoogte + $spread);
$kleur = imagecolorallocate($afbeelding, rand(170, 255), rand(170, 255), rand(170, 255));
imageline($afbeelding, 0, $y_begin, $breedte, $y_eind, $kleur);
}
imagepng($afbeelding);
imagedestroy($afbeelding);
?>
Gewijzigd op 22/06/2012 14:37:34 door Ronald E
En wat heb je geprobeerd, wat gaat er mis/goed? Het is browser trouwens.
normaal gezien kan er iet veel fout gaan, php komt van de server dus ik denk dat het aan je css licht.
Geef eens een link naar de pagina dan kunnen wij gaan spitten.
Geef eens een link naar de pagina dan kunnen wij gaan spitten.
Toon eens hoe je captcha.php gebruikt in je formulier
ik krijg nu niet de php code goed in dit scherm.
omdat er in het script veel php aan uit codes staan
omdat er in het script veel php aan uit codes staan
Gewijzigd op 22/06/2012 16:02:46 door Ronald E
Te laat, ik had het al gezien :)
Alles tussen vierkante code tags zetten.
[code][/code]
Zeg, ik heb hier geen IE9 in de buurt, maar probeer dit eens:
Werkt dit?
Trouwens ... je weet dat je 'arial.ttf' moet downloaden en in map "fonts" steken?
Alles tussen vierkante code tags zetten.
[code][/code]
Zeg, ik heb hier geen IE9 in de buurt, maar probeer dit eens:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
session_start();
if ($_SERVER['REQUEST_METHOD'] === "POST" && isset($_POST['captcha_code'], $_SESSION['captcha_code'])) {
if (strtolower($_POST['captcha_code']) == strtolower($_SESSION['captcha_code'])) {
echo 'yippie!';
}
else {
echo 'not yippie!';
}
echo '<br><a href="index.php">Terug naar formulier</a>';
exit();
}
?>
<form action="" method="post">
<input name="captcha_code"/>
<img src="captcha.php"/>
<input value="GO" type="submit"/>
</form>
session_start();
if ($_SERVER['REQUEST_METHOD'] === "POST" && isset($_POST['captcha_code'], $_SESSION['captcha_code'])) {
if (strtolower($_POST['captcha_code']) == strtolower($_SESSION['captcha_code'])) {
echo 'yippie!';
}
else {
echo 'not yippie!';
}
echo '<br><a href="index.php">Terug naar formulier</a>';
exit();
}
?>
<form action="" method="post">
<input name="captcha_code"/>
<img src="captcha.php"/>
<input value="GO" type="submit"/>
</form>
Werkt dit?
Trouwens ... je weet dat je 'arial.ttf' moet downloaden en in map "fonts" steken?
Gewijzigd op 22/06/2012 16:18:38 door Kris Peeters
ik heb het aangepast en het werkt nu




