Hallo ik ben nu bezig met een goed en veilig login script maar nog niet alles werkt goed keb parse errors en onnodige fouten der uit gehaald waardoor je het script wel gewoon werkt

maar nu als ik join.php open en klik op join zegt ie:

Notice: Undefined variable: wachtwoord in C:\server\Apache2\htdocs\mijnscripts\join.php on line 47

Warning: Missing argument 1 for generate(), called in C:\server\Apache2\htdocs\mijnscripts\join.php on line 47 and defined in C:\server\Apache2\htdocs\mijnscripts\includes\functies.php on line 21
Dank u wel voor u aanmelding er is een email gestuurt met een activatie code.
Fatal error: Call to a member function Send() on a non-object in C:\server\Apache2\htdocs\mijnscripts\join.php on line 84


ik gebruik wat bestanden van phpmailer om emailtjes te sturen

dit is het script:

<?php

include('header.php');

if(empty($_SESSION['hex_id'])) {

if(isset($_POST['join'])) {

sleep(3); // tegen brutefore attack

$query1 = mysql_query("SELECT * FROM players WHERE useraangemeldip = '".$IP."'");
$aantal1 = mysql_num_rows($query1);
$query2 = mysql_query("SELECT * FROM gebannen WHERE ip = '".$IP."'");
$aantal2 = mysql_num_rows($query2);

$naam = mysql_real_escape_string(trim($_POST['naam']));
$pass = mysql_real_escape_string(trim($_POST['wachtwoord2']));
$email = mysql_real_escape_string(trim($_POST['email2']));

$query3 = mysql_query("SELECT * FROM players WHERE username = '".$naam."'");
$aantal3 = mysql_num_rows($query3);

if($aantal1 == 1) {
echo 'U heeft al een account op dit ip adress: $IP';
}
else if($aantal2 >= 1) {
wanneer();
echo 'U bent verbannen van deze website! klik <a href="ikban.php">hier</a> om te kijken waarom.';
}
else if($naam == "") {
echo 'U moet wel een naam invullen!';
}
else if($pass == "") {
echo 'U moet wel een wachtwoord invullen!';
}
else if($email == "") {
echo 'U moet wel een email invullen!';
}
else if($aantal3 >= 1) {
echo 'Srry maar der is al iemand met deze gebruikersnaam: $naam';
} else {

if($_POST['wachtwoord1'] == $_POST['wachtwoord2']) {
if($_POST['email1'] == $_POST['email2']) {
if(isset($_POST['agree']) && $_POST['agree'] == 1) {

mysql_query("INSERT INTO players (username,userpass,useremail,useraccode,useraangemeldop,useraangemeldip) VALUES ('".$naam."','codeer(".$wachtwoord.")','".$email."','".generate()."',now(),'".$IP."')");
echo 'Dank u wel voor u aanmelding er is een email gestuurt met een activatie code.';

require('class.phpmailer.php');

class my_phpmailer extends phpmailer {
// Set default variables for all new objects
var $From = "[email protected]";
var $FromName = "Mebus";
var $Host = "smtp.quicknet.nl";
var $Mailer = "smtp"; // Alternative to IsSMTP()
var $WordWrap = 75;

// Replace the default error_handler
function error_handler($msg) {
print("My Site Error");
print("Description:");
printf("%s", $msg);
exit;
}

// Create an additional function
function do_something($something) {
// Place your new code here
}
}

$mail = new my_phpmailer;
$mail->AddAddress($email, "Activatie Email");
$mail->Subject = "Dank u wel";
$mail->Body = "hallo mebus";
$mail = 'MIME-Version: 1.0'. "\r\n";
$mail .= 'Content-type: text/plain; charset=iso-8859-1'. "\r\n";
$mail .= 'X-Priority: 3'. "\r\n";
$mail .= 'X-MSMail-Priority: Normal'. "\r\n";


if(!$mail->Send())
{
echo "Srry maar vanwegen een fout kon der geen activatie email naar u verzonden worden. Neem alstublieft contact op met de webmaster.";
exit;
}

echo 'Dank u wel voor u aanmelding er is een email gestuurt met een activatie code.';

} else {
echo 'U zult wel met de voorwaarden moeten overeenkomen wilt u zich hier kunnen aanmelden!';
}
} else {
echo 'De 2 opgegeven emails zijn niet gelijk aan elkaar!';
}
} else {
echo 'De 2 opgegeven wachtwoorden zijn niet gelijk aan elkaar!';
}
}

} else {
echo '
<form method="post" name="join" action="join.php">
Naam:<br>
<input type="text" name="naam" maxlength="10"><br><br>
Wachtwoord:<br>
<input type="password" name="wachtwoord1" maxlength="32"><br><br>
Wachtwoord: (controle)<br>
<input type="password" name="wachtwoord2" maxlength="32"><br><br>
Email:<br>
<input type="text" name="email1" maxlength="64"><br><br>
Email: (controle)<br>
<input type="text" name="email2" maxlength="64"><br><br>
<input type="checkbox" name="agree" value="1" id="agree">Ja ik kom overeen met de <a href="voorwaarden.php">voorwaarden</a><br>
<input type="submit" value="join" name="join">
</form>
';
}

} else {

echo 'U bent al ingelogt!';

}

include('footer.php');

?>

dit is de function generate:

function generate($code) {

$rand1 = rand(1,9);
$rand2 = rand(11,99);
$rand3 = rand(111,999);
$rand4 = rand(1111,9999);
$rand5 = rand(11111,99999);

return $code = $rand1.$rand2.$rand3.$rand4.$rand5;

}

dankjewel alvast als je me wilt gaan helpen!


groetjes mebus

o ja het script is nog niet helemaal af moeten nog wat puntjes op de i worden gezet:)
na ja niet alles hoeft gelijk opgelost te worden:)


groetjes mebus!
wachtwoord moet waarcshijnlijk $_POST['wachtwoord'] worden.

En in die functie kan $code weg:
function generate() {
en
return $rand1.$rand2.$rand3.$rand4.$rand5;
nou doet alles behalve dat als ik me heb aangemeld ik niet in de database word gegooid het zal hiero wel aanliggen:

mysql_query("INSERT INTO players (username,userpass,useremail,useraccode,useraangemeldop,useraangemeldip) VALUES ('$naam',codeer('$pass'),'$email',generate(),now(),'$IP')");

maar ik zie niet de fout:(
Errors aanzetten en afhandelen.
error_reporting(E_ALL); staat er al in config.php

maar zal voor de zekerheid ook nog ff in join.php
zetten:)
mysql_query(.....) or die(mysql_error());
ja eindelijk hij geeft deze error aan:

FUNCTION hexerlie.codeer does not exist

terwijl die in geinclude word door header.php

function codeer($waarde) {

return md5(sha1(crc32($waarde)));

}


hoort hexerlie er niet aan ofzo?:S waar haalt i hexerlie eigenlijk vandaan?
Probeer deze eens:
mysql_query("INSERT INTO players (username, userpass, useremail, useraccode, useraangemeldop, useraangemeldip) VALUES ('" . $naam . "', '" . codeer($pass) . "', '" . $email . "', '" . generate() . "', NOW(), '" . $IP . "')");
ok ben weer wat verder maar hij geeft nu deze error:

Out of range value adjusted for column 'useraccode' at row 1

ik dacht aan de sql zo keb int al op 22 gezet terwijl het maximaal 15 nummers kunnen zijn

zo dat is het probleem denk niet meer?


groetjes mebus!

Reageren