21. september 2006 - 00:42
Der er
4 kommentarer og 1 løsning
form vil ikke som jeg vil
Jeg har et lille simpelt script som skal tjekke om en burger er en bot eller ikke er, før han kan poste/whatever. Problemet er bare at den siger kode forkert selvom den er rigtig. Jeg tror det er fordi dataen ikke bliver sendt til koden som skal tage sig af det. Men jeg kan ikke finde fejlen. <?php $im = ImageCreate(130, 25); $white = ImageColorAllocate($im, 234, 234, 234); $black = ImageColorAllocate($im, 239, 34, 155); srand((double)microtime()*1000000); $string = md5(rand(0,9999)); $_SESSION['new_string'] = substr($string, 17, 5); ImageFill($im, 0, 0, $black); ImageString($im, 4, 50, 5, $_SESSION['new_string'], $white); ImagePNG($im, "verify.png"); ImageDestroy($im); ?> <img src="verify.png"><br /><br /> <form action="verify.php" method="post"> <br /> <input name="random" type="text" value=""> <br /> <input type="submit" name="submit" value="OK"><br /> <input type="hidden" name="action" value="submitted" /> </form> <?php if (isset($_POST['action']) && $_POST['action'] == 'submitted') { $_POST['random'] = trim($_POST['random']); if ($_SESSION['new_string'] == $_POST['random']){ print "Kode korrekt<br />"; } else{ print "Kode forkert<br />"; } } ?>
Annonceindlæg fra Lenovo
21. september 2006 - 02:12
#1
Hvis alt det der er i én fil er det klart det ikke virker, da du jo laver en ny kode hver gang der reloades/postes ;)
21. september 2006 - 02:14
#2
Prøv: <?php if ($_SERVER['REQUEST_METHOD'] != 'POST' ) { $im = ImageCreate(130, 25); $white = ImageColorAllocate($im, 234, 234, 234); $black = ImageColorAllocate($im, 239, 34, 155); srand((double)microtime()*1000000); $string = md5(rand(0,9999)); $_SESSION['new_string'] = substr($string, 17, 5); ImageFill($im, 0, 0, $black); ImageString($im, 4, 50, 5, $_SESSION['new_string'], $white); ImagePNG($im, "verify.png"); ImageDestroy($im); ?> <img src="verify.png"><br /><br /> <form action="verify.php" method="post"> <br /> <input name="random" type="text" value=""> <br /> <input type="submit" name="submit" value="OK"><br /> <input type="hidden" name="action" value="submitted" /> </form> <?php } if (isset($_POST['action']) && $_POST['action'] == 'submitted') { $_POST['random'] = trim($_POST['random']); if ($_SESSION['new_string'] == $_POST['random']) { print "Kode korrekt<br />"; } else{ print "Kode forkert<br />"; } } ?>
21. september 2006 - 06:40
#3
Der mangler også lige en session_start();
21. september 2006 - 08:23
#4
Session start står over headered og det pis jeg ik gad poste med. Hold kæft hvor dum har man lov at være. smid et svar coderdk
21. september 2006 - 10:14
#5
hehhe det sker jo :)
Vi tilbyder markedets bedste kurser inden for webudvikling