Ho un problema con lo script di registrazione! Questo script mi invia l'email di registrazione, ma quando clicco sul link mi da una pagina bianca!
Codice PHP:
<?php
if(!isset($_GET['passkey'])){
if(!isset($_POST['invia'])){
echo '<form method="post" action="#" id="formregistrazione">
<ul>
<li><lable for="username">Username:</lable>
<input type="text" name="username" id="username">
</li>
<li><lable for="password1">Password:</lable>
<input type="password" name="password1" id="password1">
</li>
<li><lable for="password2">Ripeti password:</lable>
<input type="password" name="password2" id="password2">
</li>
<li><lable for="username">Username:</lable>
<input type="text" name="username" id="username">
</li>
<li><lable for="email">Email:</lable>
<input type="text" name="email" id="email">
</li>
</ul>
<input type="submit" name="invia" id="registrati" value="Registrati">
</form>';
} else {
include 'config.php';
$codiceconferma = md5(uniqid(rand()));
$username = mysql_real_escape_string($_POST['username']);
$password1 = mysql_real_escape_string($_POST['password1']);
$password2 = mysql_real_escape_string($_POST['password2']);
$email = mysql_real_escape_string($_POST['email']);
if($username == ""|| $email == ""){
echo "Devi riempire tutti i campi";
}elseif($password1 == ""|| $password2 == ""){
echo "Devi riempire tutti i campi";
}elseif($password1 != $password2){
echo "Le password devono coincidere";
} else{
$recuperausermail = mysql_query("SELECT id FROM Utenti WHERE username = '$username' AND email = '$email'");
$contausermail = mysql_num_rows($recuperausermail);
if($contausermail > 0){
echo "Nome utente o email già disponibili.";
} else {
$inviautentitemp = mysql_query("INSERT INTO Utenti_tmp (Codiceconferma, Username, Password, Email) VALUES ('$codiceconferma','$username','$password1','$email')");
if($inviautentitemp){
$to=$email;
$subject="Conferma la registrazione.";
$header="From: Ysual Italia.";
$message="Ecco il tuo codice di attivazione \r\n";
$message.="Clicca sul link per confermare la registrazione \r\n";
$message.="http://www.italianwebhack.altervista.org/register.php?passkey=$codiceconferma";
$sentmail=mail($to, $subject, $message, $header);
}
if($sentmail){
echo "Per completare la registrazione, clicca sul link che ti abbiamo inviato per email";
} else{
echo "Errore: Non ti è stato inviato nessun link di attivazione account";
}
}
}
}
} else{
$passkey = $_GET['passkey'];
$sqlrecuperauser = "SELECT * FROM Utenti_tmp WHERE (codiceconferma = '$codiceconferma' username = '$username' password = '$password' AND email = '$email')";
$risultatouser = mysql_query($sqlrecuperauser);
if($risultatouser){
$contauser = mysql_num_rows($risultatouser);
if($contauser == 1){
$rows = mysql_fetch_array($risultatouser);
$username = $rows['username'];
$password = $rows['password'];
$email = $rows['email'];
$sqlconfermauser = mysql_query("INSERT INTO Utenti (Username, Password, Email) VALUES ('$username','$password','$email')");
if($sqlconfermauser){
echo "Il tuo account è attivato.";
$sqleliminadati = "DELETE FROM Utenti_tmp WHERE codiceconferma = '$codiceconferma' username = '$username' password = '$password' AND email = '$email'";
} else {
echo "Errore, dati non inviati";
}
}
}
}
?>
In teoria dovrebbe dirmi "Il tuo account è attivo", dovrebbe cancellarmi i dati dalla tabella "Utenti_tmp" e dovrebbe inviarmeli alla tabella "Utenti". Come mai da solo la pagina bianca e i dati non li cancella e ne invia? Se i dati non passano alla tabella "Utenti" non posso eseguire il login. Dove ho sbagliato? Grazie in anticipo.