Activatie code
ik wil in mijn gastenboek een activatiecode toevoegen want heb laatste tijd last van spam. Ik hem wel een php code om een afbeelding te genereren. Alleen weet ik niet hoe ik de afbeelding kan vergelijken met de ingevoerde getallen.
$code kan ik namelijk niet uitlezen.
Image:
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
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
<?php
session_start();
header("Content-type: image/jpeg");
$img = @imagecreate(100,20);
$bg = imagecolorallocate($img, 255, 255, 255);
$txt = imagecolorallocate($img, 0, 0, 0);
$seed = time();
$seed = srand($seed);
$rand = md5(rand());
$seed2 = date("zs");
$seed2 = srand($seed2);
$start = rand(0,22);
$code = substr($rand,$start,20);
$_SESSION['code'] = $code;
imagestring($img, 10, 5, 2, $_SESSION['code'], $txt);
$angle_choice = date("sz");
$angle_choice = srand($angle_choice);
$angle_choice = rand(1,2);
$angle_choice = ($angle_choice == 1)?"angle_neg" : "angle_pos";
$angle_neg = rand(-7,-2);
$angle_pos = rand(7,2);
$rotate = imagerotate($img,$$angle_choice,$bg);
imagejpeg($rotate);
imagedestroy($rotate);
imagedestroy($img);
?>
session_start();
header("Content-type: image/jpeg");
$img = @imagecreate(100,20);
$bg = imagecolorallocate($img, 255, 255, 255);
$txt = imagecolorallocate($img, 0, 0, 0);
$seed = time();
$seed = srand($seed);
$rand = md5(rand());
$seed2 = date("zs");
$seed2 = srand($seed2);
$start = rand(0,22);
$code = substr($rand,$start,20);
$_SESSION['code'] = $code;
imagestring($img, 10, 5, 2, $_SESSION['code'], $txt);
$angle_choice = date("sz");
$angle_choice = srand($angle_choice);
$angle_choice = rand(1,2);
$angle_choice = ($angle_choice == 1)?"angle_neg" : "angle_pos";
$angle_neg = rand(-7,-2);
$angle_pos = rand(7,2);
$rotate = imagerotate($img,$$angle_choice,$bg);
imagejpeg($rotate);
imagedestroy($rotate);
imagedestroy($img);
?>
Hoe kan ik nu de code op de afbeelding vergelijken met een invulveld? Ik weet hoe ik het kan vergelijken ik krijg alleen de code niet in een variabele.
Of heeft iemand anders een werkende? Op deze site kon ik niks nuttigs vinden hierover.
{
//goedgekeurd
}else{
//afgekeurd
}
echo $_SESSION['code'];
(bij mij ligt de heletijd phphulp.nl eruit... dan weer niet dan weer wel... :@)
Die code heb je (neem ik aan) in een apart bestand staan right... staat er dan ook een sessie_start() bovenaan het bestand want het formulier ontvangt en verwerkt?
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
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
<?php
session_start(); //Erg belangrijk, niet vergeten!
if($_SERVER['REQUEST_METHOD'] == "POST"){
//Eerst alle andere dingen checken, en dan:
if(!empty($_POST['code'])){
$code = htmlentities($_POST['code']);
if($code != $_SESSION['code'])
{
echo "\nCode is verkeerd<br />";
//Debug:
echo "\nCode sessie:". $_SESSION['code']."<br />";
echo "\nCode form:". $_POST['code']."<br />";
//Einde debug
}
}
else{
echo "\nCode is niet ingevult<br />";
}
}
?>
//Eerst alle overige HTML, <form> en andere dingen, en dan:
<img src="code.php" alt="Code" />
<input type="text" name="code"/>
//Dan weer HTML
session_start(); //Erg belangrijk, niet vergeten!
if($_SERVER['REQUEST_METHOD'] == "POST"){
//Eerst alle andere dingen checken, en dan:
if(!empty($_POST['code'])){
$code = htmlentities($_POST['code']);
if($code != $_SESSION['code'])
{
echo "\nCode is verkeerd<br />";
//Debug:
echo "\nCode sessie:". $_SESSION['code']."<br />";
echo "\nCode form:". $_POST['code']."<br />";
//Einde debug
}
}
else{
echo "\nCode is niet ingevult<br />";
}
}
?>
//Eerst alle overige HTML, <form> en andere dingen, en dan:
<img src="code.php" alt="Code" />
<input type="text" name="code"/>
//Dan weer HTML