Captcha, code verkeerd ingevoert
ik heb een gastenboek en wil daar graag een captcha aan toevoegen maar ik krijg telkens ervoor dat ik de code verkeerd invoer terwijl ik hem toch echt goed invoer. mijn code is:
en van de pagina die de captcha genereerd:
wat doe ik verkeerd?
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php session_start(); ?>
<?php
$bestand = "gastenboek.txt";
$fp = fopen($bestand, "r+");
$nieuwsberichten = stripslashes(fread($fp, filesize ($bestand))); //data eruit halen
fclose($fp);
$nieuwsbericht = explode("+£#~", $nieuwsberichten);
$error = 'Uw heeft de control code niet juist ingevoert';
if($_GET['action'] == 'post') { //als er op de admin pagina geklikt is
echo "<div align='center'><font color='#000000' face='arial'>Bericht toevoegen</font></div><br><br>";
if(isset($_POST['posten'])) { //als er iets gepost is
if($_SESSION['security_code'] == $_POST['controlcode'] && empty($error)) {
$nieuwsartikel = $_POST['naam']."!*&%".date("d-m-Y H:i")."!*&%".$_POST['bericht']; //wat er ingevoegd moet worden(incl. scheidingstekens)
if(strlen($nieuwsberichten) > 0){ $oude_nieuwsberichten = "+£#~".$nieuwsberichten; } //als er meer dan 1 nieuwsbericht is
$fp = fopen($bestand, "w");
fputs($fp, $nieuwsartikel.$oude_nieuwsberichten); //weer invoegen met artikel en oude nieusberichen
fclose($fp);
}
else{
//hier als de control code niet goed is
echo"Uw heeft de control code niet juist ingevoert";
}
?>
<?php
$bestand = "gastenboek.txt";
$fp = fopen($bestand, "r+");
$nieuwsberichten = stripslashes(fread($fp, filesize ($bestand))); //data eruit halen
fclose($fp);
$nieuwsbericht = explode("+£#~", $nieuwsberichten);
$error = 'Uw heeft de control code niet juist ingevoert';
if($_GET['action'] == 'post') { //als er op de admin pagina geklikt is
echo "<div align='center'><font color='#000000' face='arial'>Bericht toevoegen</font></div><br><br>";
if(isset($_POST['posten'])) { //als er iets gepost is
if($_SESSION['security_code'] == $_POST['controlcode'] && empty($error)) {
$nieuwsartikel = $_POST['naam']."!*&%".date("d-m-Y H:i")."!*&%".$_POST['bericht']; //wat er ingevoegd moet worden(incl. scheidingstekens)
if(strlen($nieuwsberichten) > 0){ $oude_nieuwsberichten = "+£#~".$nieuwsberichten; } //als er meer dan 1 nieuwsbericht is
$fp = fopen($bestand, "w");
fputs($fp, $nieuwsartikel.$oude_nieuwsberichten); //weer invoegen met artikel en oude nieusberichen
fclose($fp);
}
else{
//hier als de control code niet goed is
echo"Uw heeft de control code niet juist ingevoert";
}
?>
en van de pagina die de captcha genereerd:
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
<?
//Altijd eerst een session start.
session_start();
//de image/jpeg kan je ook verandere naar image/gif en image/png
header ("Content-type: image/jpeg");
//random getal maken.
$randomnr = rand(100000,999999);
//het plaatje opslaan als $_SESSION['security_code']
$_SESSION['security_code']=$randomnr;
//het plaatje waar het getal in moet komen.
$imagepath = "code_plaatje.jpg";
//het lettertyppe
// Set the enviroment variable for GD
putenv('GDFONTPATH=' . realpath('.'));
$font = "arial.ttf";
//het plaatje maken, ook handig om te doen :D
$im = imagecreatefromjpeg($imagepath);
$tc = imagecolorallocate($im, 10, 0 ,0);
//de getallen 15 0 1 17 zijn de x en de y as of te wel de positie waar het getal komt in het plaatje
imagettftext ($im, 15, 0, 1, 17, $tc, $font, $randomnr);
imagejpeg($im,'',100);
?>
//Altijd eerst een session start.
session_start();
//de image/jpeg kan je ook verandere naar image/gif en image/png
header ("Content-type: image/jpeg");
//random getal maken.
$randomnr = rand(100000,999999);
//het plaatje opslaan als $_SESSION['security_code']
$_SESSION['security_code']=$randomnr;
//het plaatje waar het getal in moet komen.
$imagepath = "code_plaatje.jpg";
//het lettertyppe
// Set the enviroment variable for GD
putenv('GDFONTPATH=' . realpath('.'));
$font = "arial.ttf";
//het plaatje maken, ook handig om te doen :D
$im = imagecreatefromjpeg($imagepath);
$tc = imagecolorallocate($im, 10, 0 ,0);
//de getallen 15 0 1 17 zijn de x en de y as of te wel de positie waar het getal komt in het plaatje
imagettftext ($im, 15, 0, 1, 17, $tc, $font, $randomnr);
imagejpeg($im,'',100);
?>
wat doe ik verkeerd?
Edit:
laat maar, ik heb het al:)
laat maar, ik heb het al:)
Gewijzigd op 01/01/1970 01:00:00 door Mvos
Uhm, je defineerd $error of weet ik wat en gaat daarna kijken of hij leeg is. Dan kan ik ook die fout krijgen.
dat was de fot niet ik was in de regel:
vergeten een uitroepteken voor voor empty te zetten:)
vergeten een uitroepteken voor voor empty te zetten:)
ok, peace
gewoon je eigen fout gevonden? :-P




