Hey,

Ik zit met veel spam op een website. Ik moet de boel even gaan beveiligen. Heb het al eerder willen doen maar kom er steeds maar niet uit. Dus hoop ik dat jullie een oplossing hebben.

Ik heb het bestand van de afbeelding
<?php
session_start();
function randstr($length, $hash = "abcdefghijklmnopqrstuvwxyz0123456789") {
    $strlength = strlen($hash);

    $string = "";
    for($i = 0; $i < $length; $i++) {
                $random = rand(0, $strlength) - 1;

            $string .= substr($hash, $random, 1);
    }

    return $string;
} 
$string = randstr(5);
$hash = md5($string);
session_register("hash");


$width = 80;  
$height = 20; 

$imgTXT = $string; 
$hTXT = rand(11,13); 
$wTXT = rand(5,30); 
$angleTXT = rand(-3, 3); 
$sizeTXT = 10; /

$imgCreate = ImageCreate($width, $height); 
$imgBg = ImageColorAllocate($imgCreate, 51, 51, 51); 
$imgFg = ImageColorAllocate($imgCreate, 255, 255, 255); 

ImageFill($imgCreate, 1, 1, $imgBg); 

Imagettftext($imgCreate,$sizeTXT,$angleTXT,$wTXT,$hTXT,$imgFg,'Vera.ttf',$string) or die ("Please refresh");

header('Content-type: image/png');
ImagePNG($imgCreate); 
ImageDestroy($imgCreate); 

?>


daar heb ik een session in staan. En ik wil die gaan checken in een formulier. Dat heb ik als volgt gedaan:
	If (isset($_POST['answer']) AND $_POST['answer'] != ""){ 
    	$answer = $_POST['answer']; // Ophalen
  		$answer = trim($answer); // Eventuele spaties weghalen
  		$answer = strtolower($answer); // Er lowercase van maken
 		$answer = md5($answer); // md5 encrypten
		
		if(!isset($_SESSION["hash"])){
	   		$real = $_SESSION['hash'];
    	}else{ die("Er is iets fout"); }
  	
		if($answer != $real){
    	echo "<font color=\"red\">De code is niet juist.</font><br/>";
    	} elseif ($answer == $real){

na dit laatste stukje code wordt de boel de database in gepropt. Let niet op de chaos. Ben al lang aan het proberen maar kom er maar niet uit. Weet iemand hoe ik dit wel kan doen? (ohja boven in het bestand waar ik check staat wel session_start())

Edit:ik krijg dus de sessie niet in het 'check' bestand.
Madame Zelma zegt.....




Waaaaaaaaat is je fouuuuuuuuuuuuuuuuuuuut
ik heb geen foooooooooooooooooooooooooooooooooooooooooooout melding.
Ik krijg alleen de tekst op de afbeelding niet echt als tekst zodat ik hem kan checken.
session_register("hash");

is vooroorlogs

gebruik

$_SESSION['hash']
dat had ik ook al geprobeerd

$_SESSION['hash'] = $hash;

maar dan krijg ik als nog: 'er is iets fout'
de session echo'n werkt ook niet want session = 0.
Of is er een andere manier? Dit heb ik uit een script. Daar deden ze het met een cookie maar ook dat werkte niet. En mijn browser accepteert wel cookies.
ok bedankt, ga het morgen is proberen.
aaah super ;-) hij werkt. Eindelijk. Super bedankt!

Reageren