Lid |
|
Ik ben verder gaan werken aan mijn site, en ging mijn registratieformulier testen. Het bleek echter dat het mogelijk was om je account te kopiëren door de pagina te herladen wanneer je het bericht kreeg dat je succesvol bent geregistreerd, en dat is natuurlijk niet de bedoeling.
reg.php
<?php
if(isset($_POST['regSubmit'])){
if( $_SESSION['security_code'] == $_POST['security_code'] && !empty($_SESSION['security_code'])){
if(!strcmp($_POST['regPass1'], $_POST['regPass2'])) {
if(!empty($_POST['regNaam'])){
if(!empty($_POST['regPass1'])){
if(!empty($_POST['regMail1'])){
if(mysql_num_rows($res) == 0) {
if(!strcmp($_POST['regMail1'], $_POST['regMail2'])) {
$pass = md5($_POST['regPass1']);
$name = $_POST['regNaam'];
$mail = md5($_POST['regMail1']);
mysql_query("INSERT INTO members (naam, wachtwoord, mail) VALUES ('".$name."','".$pass."','".$mail."')") or die(mysql_error());
echo"You've succesfully been registered!";
} else {
echo"The entered e-mailadresses don't equal!";
}
} else {
echo"The entered username or e-mailadress already exists!";
}
} else {
echo"You must fill in your e-mailadress!";
}
} else {
echo"You must fill in a password!";
}
} else {
echo"You must fill in a username!";
}
} else {
echo"The entered passwords don't equal!";
}
} else {
echo"You didn't fill the Captcha in correctly!";
}
} else {
?>
<?php if(isset($_POST['regSubmit'])){ if( $_SESSION['security_code'] == $_POST['security_code'] && !empty($_SESSION['security_code'])){ if(!strcmp($_POST['regPass1'], $_POST['regPass2'])) { if(!empty($_POST['regNaam'])){ if(!empty($_POST['regPass1'])){ if(!empty($_POST['regMail1'])){ if(!strcmp($_POST['regMail1'], $_POST['regMail2'])) { $pass = md5($_POST['regPass1']); $name = $_POST['regNaam']; $mail = md5($_POST['regMail1']); mysql_query("INSERT INTO members (naam, wachtwoord, mail) VALUES ('".$name."','".$pass."','".$mail."')") or die(mysql_error()); echo"You've succesfully been registered!"; } else { echo"The entered e-mailadresses don't equal!"; } } else { echo"The entered username or e-mailadress already exists!"; } } else { echo"You must fill in your e-mailadress!"; } } else { echo"You must fill in a password!"; } } else { echo"You must fill in a username!"; } } else { echo"The entered passwords don't equal!"; } } else { echo"You didn't fill the Captcha in correctly!"; } } else { ?>
Dus, bij het bericht "You've succesfully been registered!" kun je de pagina herladen om zo je account te dupliceren, omdat de gegevens ook opnieuw worden verzonden naar de database.
Hoe kan ik dit voorkomen?
|