Probleem met cookies of GD(2)
Ik heb van het internet een image verification systeempje geplukt en dit op mijn site gezet na het een beetje aangepast te hebben.
het probleem is, zelfs als ik 5x heb geprobeerd (code veranderd steeds) en ik 100% weet dat de code klopt die ik moet overtypen krijg ik de melding:
Verificatie code fout.
Dit is verificatie.php:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$alphanum = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$rand = substr(str_shuffle($alphanum), 0, 5);
setcookie("verification",md5($rand),time()+60*60*24,"/","http://www.psykofool.com");
$image = imagecreatefromjpeg("images/imageverification.jpg");
$textColor = imagecolorallocate ($image, 00, FF, 00);
imagestring ($image, 5, 5, 8, $rand, $textColor);
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header('Content-type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
?>
$alphanum = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$rand = substr(str_shuffle($alphanum), 0, 5);
setcookie("verification",md5($rand),time()+60*60*24,"/","http://www.psykofool.com");
$image = imagecreatefromjpeg("images/imageverification.jpg");
$textColor = imagecolorallocate ($image, 00, FF, 00);
imagestring ($image, 5, 5, 8, $rand, $textColor);
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header('Content-type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
?>
Ik laat het plaatje zien op deze manier (in een form):
<form method="post"><table align="center">
<tr><td width=100>Email-adres:</td> <td><input type="text" name="email" maxlength=32 style="width: 150;"></td></tr>
<tr><td width=100>Wachtwoord:</td> <td><input type="password" name="pass" maxlength=16 style="width: 150;"></td></tr>
<tr><td><img src="verification.php"></td></tr>
<tr><td width=100>Code:</td> <td><input name="txtNumber" type="text" id="txtNumber" value="" style="width: 150;"></td></tr>
<tr><td></td><td align="right"><input type="submit" name="submit" style="width: 100;" value="Login"></td></tr>
</table></form>
Ik gebruik die image om zeker te zijn dat geen bot of dergelijke probeert binnen te komen.
En om brute-force tegen te gaan.
Ik controleer de invoer van de code en username/ww op deze manier:
if(isset($_POST['email'],$_POST['pass'])) {
$number = $_POST['txtNumber'];
if(md5($number) == $_COOKIE['verification']) {
hier de database zut etc.
daaronder staat een else waarmee als de code fout is word 'gezegd' dat de code fout is.
Volgens mij leest die of de cookie niet goed of de cookie word niet goed gezegd, ik kom er echt niet meer uit.
Wie kan me helpen?
-DARIDE
en kijk of het daar goed gaat :P
Ik krijg alleen phpsessid dus er is iets mis met cookie setten..
weet jij wat ik fout doe?
moet je anders om zetten
$_COOKIE['verification'] == md5($number)
nu werkt het wel... let maar op :P
if(isset($_POST['email'],$_POST['pass'],$_POST['verificationuser'])) {
$dbres = mysql_query("SELECT `login`,`email`,`activated` FROM `[users]` WHERE `email`='{$_POST['email']}' AND `pass`=MD5('{$_POST['pass']}')");
$number = $_POST['verificationuser'];
$verification = $_SESSION['securitycode'];
echo "De post: $number<br>";
echo "De sesi: {$_SESSION['securitycode']}<br>";
if(($data = mysql_fetch_object($dbres)) && $data->activated == 1 && $_POST['verificationuser'] == $_SESSION['securitycode']) {
Bij die 2echo's staat wel de zelfde code, maar hij geeft aan dat ik ingelogt ben + daarna een bericht dat de verificatiecode niet klopt, en dan benk uitgelogt :(
Wie kan me helpen, word hopeloos
Jij ben zo goed in hacken en dan nog niet weten hoe je een goed verificatie systeem moet maken.
BTW voor andere gebruikers: dit is voor het spel criminals.
Hebben veel mensen hier een hekel aan :P
Niet om jou te benadelen maar bij mij werkt dit script ook niet. Heb allang iets anders bedacht voor mijn criminals.
Marien
nee weet ik niet, hat ookso iets bij mij maar.....
Weet iemand al de oplossing?
Help plz!
Maak hem dan gewoon opnieuw!
Heb ik al een keer gedaan, nog steeds zelfde probleem -_-
Heeft er misschien iemand een werkende verif script?
Marien:
hey daride!!! word je hopeloos...
Jij ben zo goed in hacken en dan nog niet weten hoe je een goed verificatie systeem moet maken.
BTW voor andere gebruikers: dit is voor het spel criminals.
Hebben veel mensen hier een hekel aan :P
Niet om jou te benadelen maar bij mij werkt dit script ook niet. Heb allang iets anders bedacht voor mijn criminals.
Marien
Jij ben zo goed in hacken en dan nog niet weten hoe je een goed verificatie systeem moet maken.
BTW voor andere gebruikers: dit is voor het spel criminals.
Hebben veel mensen hier een hekel aan :P
Niet om jou te benadelen maar bij mij werkt dit script ook niet. Heb allang iets anders bedacht voor mijn criminals.
Marien
Sinds wanneer heeft hacken iets te maken met verstand hebben van php?
Je kan op zoveel manieren hacken..
(misschien werkt het niet met FF, maar met IE(maxthon browser) wel;))
Zoek dat iets zoals dit op:
verification= *MD5STRING*
Als dat bestaat dan weet je dat de cookie/sessie is ingesteld, als dat niet bestaat weet je dat er iets mis is bij het instellen van de cookie/sessie.
--------------------------------------------
2.
daride:
Ben er al achter gekomen dat het cookie steeds het zelfde kwam dus gebruik nu een session alleen zelfde probleem:
if(isset($_POST['email'],$_POST['pass'],$_POST['verificationuser'])) {
$dbres = mysql_query("SELECT `login`,`email`,`activated` FROM `[users]` WHERE `email`='{$_POST['email']}' AND `pass`=MD5('{$_POST['pass']}')");
$number = $_POST['verificationuser'];
$verification = $_SESSION['securitycode'];
echo "De post: $number<br>";
echo "De sesi: {$_SESSION['securitycode']}<br>";
if(($data = mysql_fetch_object($dbres)) && $data->activated == 1 && $_POST['verificationuser'] == $_SESSION['securitycode']) {
Bij die 2echo's staat wel de zelfde code, maar hij geeft aan dat ik ingelogt ben + daarna een bericht dat de verificatiecode niet klopt, en dan benk uitgelogt :(
Wie kan me helpen, word hopeloos
if(isset($_POST['email'],$_POST['pass'],$_POST['verificationuser'])) {
$dbres = mysql_query("SELECT `login`,`email`,`activated` FROM `[users]` WHERE `email`='{$_POST['email']}' AND `pass`=MD5('{$_POST['pass']}')");
$number = $_POST['verificationuser'];
$verification = $_SESSION['securitycode'];
echo "De post: $number<br>";
echo "De sesi: {$_SESSION['securitycode']}<br>";
if(($data = mysql_fetch_object($dbres)) && $data->activated == 1 && $_POST['verificationuser'] == $_SESSION['securitycode']) {
Bij die 2echo's staat wel de zelfde code, maar hij geeft aan dat ik ingelogt ben + daarna een bericht dat de verificatiecode niet klopt, en dan benk uitgelogt :(
Wie kan me helpen, word hopeloos
Misschien include je verificatie.php nog een keer nadat je op submit hebt gedrukt, dit zorgt dan dat je code verandert!