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.