Heey,

Ik ben nieuw op dit forum, maar heb eigenlijk gelijk een vraagje.

Ik ben pas begonnen met een ledensysteem maken, maar blijf nu hangen bij captcha, omdat daar hele tijd een error wordt gegeven.

************************************************
Ik heb de juiste codes al gevonden. Hieronder staa tie.
************************************************

register.php

<?php
session_start();
include("config.php");

$aCaptcha = array (
array('8a2bd'),
array('vw901'),
array('h12h4'),
array('6hi18'),
array('67k5l'),
array('31rm2'),
array('x23i9'),
array('1l7m0'),
array('o8k04')
);

$_SESSION['key'] = mt_rand(0, 8);
$image = '/images/captcha/' . $_SESSION['key'] . '.jpg';
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"/>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<title>Registreren</title>
<link rel="stylesheet" type="text/css" href="opmaak.css"/>
</head>
<body>
<h1>Navigatie</h1>
<ul class="navigatie">
<li><a href="index.php">Hoofdpagina</a></li>
<li><a href="register.php">Aanmelden</a></li>
<li><a href="login.php">Inloggen</a></li>
<li><a href="contact.php">Contact</a></li>
<li><a href="update.php">Updates</a></li>
</ul>
<hr/>
<h1>Registreren</h1>
<div class="form">
<form method="POST" action="register_check.php">
<label for="name">Naam</label><br/>
<input type="text" name="name" maxlength="50"/><br/>
<label for="user">Gebruikersnaam</label><br/>
<input type="text" name="user" maxlength="20"/><br/>
<label for="pass">Wachtwoord</label><br/>
<input type="password" name="pass" maxlength="15"/><br/>
<label for="hpass">Herhaal Wachtwoord</label><br/>
<input type="password" name="hpass" maxlength="15"/><br/>
<label for="email">Emailadres</label><br/>
<input type="text" name="email" maxlength="100"/><br/><br/>
<img src="<?php echo $image; ?>" class="captcha"/><br/>
<input type="text" name="captcha"><br/><br/>
<input type="checkbox" name="accord"/> Ik ga akkoord met de voorwaarden. <br/>
<input type="checkbox" name="news"/> Ik wil graag de nieuwsbrief ontvangen. <br/><br/>
<input type="submit" name="submit" value="Registreren">
</form>
</div>
</body>
</html>
<?php
exit();
?>


register_check.php

<?php
session_start();
include("config.php");

$name = mysql_real_escape_string($_POST['name']);
$user = mysql_real_escape_string($_POST['user']);
$pass = mysql_real_escape_string($_POST['pass']);
$hpass = mysql_real_escape_string($_POST['hpass']);
$email = mysql_real_escape_string($_POST['email']);
$news = mysql_real_escape_string($_POST['news']);
$aCaptcha = array ('8a2bd', 'vw901', 'h12h4', '6hi18', '67k5l', '31rm2', 'x23i9', '1l7m0', 'o8k04');
$captcha = mysql_real_escape_string($_POST['captcha']);
$key = $_SESSION['key'];

$md5 = md5($pass);
$ip = $_SERVER['REMOTE_ADDR'];

$date = date("Y-d-m");
$mail_date = date("d-m-Y");
$time = date("H:i");
$activate = "nee";
$points = "0";

$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$subject = "Aanmelding succesvol.";

$bericht = "U heeft zich op " . $mail_date . " om " . $time . " aangemeld." . "<br/><br/>";
$bericht .= "==========================================" . "<br/><br/>";
$bericht .= "Beste " . $name . ", <br/><br/>";
$bericht .= "Bedankt voor het aanmelden op deze site." . "<br/>";
$bericht .= "Over enkele ogenblikken kan je je inloggen op deze site." . "<br/><br/>";
$bericht .= "Maar eerst moet je je account nog activeren." . "<br/>";
$bericht .= "Om je account te activeren hoef je alleen even op onderstaande" . "<br/>";
$bericht .= "link te klikken:" . "<br/>";
$bericht .= '<a href="http://www.oefenen.prutz0r.nl/activate.php">http://www.oefenen.prutz0r.nl/activate.php</a>' . "<br/><br/>";
$bericht .= "Hieronder staan de gegevens, waarmee je kan inloggen:" . "<br/>";
$bericht .= "- Gebruikersnaam: " . $user . "<br/>";
$bericht .= "- Wachtwoord: " . $pass . "<br/>";
$bericht .= "- Emailadres: " . $email . "<br/><br/>";
$bericht .= "Met vriendelijke groet," . "<br/><br/>";
$bericht .= "Oefenen.Prutz0rzz,";

$que = "SELECT * FROM leden WHERE email = '".$email."'";
$res = mysql_query($que) OR die(mysql_error());

if(empty($name) || empty($user) || empty($pass) || empty($hpass) || empty($email) || empty($captcha))
{
echo "Alle velden moeten ingevuld zijn.";
exit();
}

elseif(!isset($_POST['accord']))
{
echo "U moet eerst akkoord gaan met de voorwaarden.";
exit();
}

elseif(mysql_num_rows($res) == 1)
{
echo "Dit emailadres bestaat al.";
exit();
}

elseif($pass != $hpass)
{
echo "De wachtwoorden zijn niet hetzelfde.";
exit();
}

elseif($aCaptcha[$_SESSION['key']] != $captcha)
{
echo "Onjuiste captcha ingevuld.";
exit();
}

else
{
echo "Er wordt een mail met verdere instructies opgestuurd.";

$que1 = "INSERT INTO leden(name, user, pass, email, points, date, time, status, ip, activate, news) VALUES('".$name."', '".$user."', '".$md5."', '".$email."', '".$points."', '".$date."', '".$time."', '".$status."', '".$ip."', '".$activate."', '".$news."')";
$res1 = mysql_query($que1) OR die(mysql_error());

mail($email, $subject, $bericht, $headers);
}
?>


Met vriendelijke groet,

Ruben,
elseif(!in_array($captcha, $aCaptcha['$key']))

Moet volgens mij zijn:
elseif(!in_array($aCaptcha['$key'],$captcha))
Nee, werkt niet.

Krijg nog steeds dezelfde foutmelding...
Iemand anders?
owhz wacht zie net:


1) session_start(); bovenaan
2) $key = $_SESSION['key'];
3) elseif(!in_array($aCaptcha[$key],$captcha))



Als dat niet helpt, kijk ik verder
1. Me session_start(); staat bovenaan in me script in connect.php.
2. Geprobeerd, maar maakt geen verschil.
3. Geprobeerd, maar maakt ook geen verschil.
Ruben schreef op 14.08.2009 15:25
Me session_start(); staat bovenaan in me script in connect.php.

Wordt die ook geinclude bij registratie.php? De kans is er namelijk dat je helemaal geen sessie hebt als je het daar niet bij zet. Wat krijg je te zien als je dit na "$res=mysql_query(..." zet?
var_dump($captcha,$aCaptcha['$key']);
Ik krijg nu dit + die error:


string(5) "6hi18" NULL 
Ik zie net, heb je die $aCaptcha array eigenlijk wel in je register_check.php staan? of staat hij in connect.php? Je moet wel eerst een array definiƫren voordat je kan gaan zoeken of er een waarde inzit :P. Als dat het geval is, probeer dit dan eens:

var_dump($aCaptcha[$key],$aCaptcha,$key);
waarom laat je de codes gewoon niet genereren? kans 1/8 is voor een bot niet zo moeilijk en leg ff uit waar <?php exit(); ?> voor is.
Varabelen niet tussen quotes zetten en ZEKER nooit tussen enkele quotes.
<?php
elseif(!in_array($captcha, $aCaptcha[$key]))
?>
Zou iemand het in het script even zo willen aanpassen, dat het klopt, want zelf snap ik er nu niet veel meer van.

En ohja, in connect.php, daar staat alleen me connectie met database en session_start() in...

Reageren