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:)
function generate() {

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

return $ac;

}
mebus schreef op 25.03.2006 20:26
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?

Dat is nooit het probleem geweest ;)
En int is 4 bytes. (punt)
De waarde tussen de haakjes heeft alleen effect met het ZEROFILL keyword erachter.
Je kunt je int niet groter maken, daar zijn types als bigint voor.
Als je toch niet onder de 0 duikt kun je ook unsigned gebruiken, dat scheelt ook weer :)

Verder snap ik het nut niet van al die rands?
Explain bitte ;)

Reageren