<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="it">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<?php
include_once 'header2.php';
//$testo = testo da verificare, $mi= lunghezza minima del testo, $ma= lunghezza massima
function ver_testo($testo,$mi,$ma){
$pattern="/^[A-Za-z0-9]{".$mi.",".$ma."}$/";
if(preg_match($pattern, $testo)){
//testo ok
return TRUE;
}else{
return FALSE;
}
}
if(!isset($_GET['passkey'])){
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$username = trim($_POST['username']);
$password1 = trim($_POST['password1']);
$password2 = trim($_POST['password2']);
$email = trim($_POST['email']);
//metto a vuoto messagggio di errore
$ok_ko="";
if(!ver_testo($username,4,10)){$ok_ko.="username non corretto deve essere lungo da 4 a 10 caratteri <br />";}
if(!ver_testo($password1,6,12)){$ok_ko.="prima password non corretta deve essere composta da minimo 6 massimo 12 caratteri<br />";}
if(!ver_testo($password2,6,12)){$ok_ko.="seconda password non corretta deve essere composta da minimo 6 massimo 12 caratteri<br />";}
if($password1 != $password2){$ok_ko.="le password non coincidono<br />";}
if(!filter_var($email, FILTER_VALIDATE_EMAIL)){$ok_ko.="Attenzione!, indirizzo email non valido<br />";}
if($ok_ko==""){//se è rimasto vuoto non ci sono errori
$codiceconferma = md5(uniqid(rand()));
$username = mysql_real_escape_string(strtolower(($username)));//conviene salvarlo tutto in minuscolo
//e ti conviene verificare che non ce ne sia un altro uguale
$verificauseremail = mysql_query("SELECT id FROM utenti WHERE username='$username' OR email='$email'");
if(mysql_num_rows($verificauseremail)>0){
//avvisi e torni al form pulito
echo "ATTENZIONE: username o email già esistente, scegline un altro.<br />";
echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
}else{
$username = mysql_real_escape_string($username);
$email = mysql_real_escape_string($email);
$password = mysql_real_escape_string($password1);
$inviautentitemp = "INSERT INTO utenti_temp (codiceconferma, username, password, email) VALUES ('$codiceconferma', '$username', '$password', '$email')";
if(mysql_query($inviautentitemp)){
//prepari l'email di conferma da inviare
//anche se sarebbe meglio che tu usassi al posto di mail() la classe phpmailer
//Includo la classe phpmailer
include ("class.phpmailer.php");
$mail = new PHPmailer();
$mail->IsSMTP();
$mail->isHtml(true);
$mail->SMTPDebug = true;
// Impostazioni invio mail al cliente
$mail->Setfrom ("[email protected]","Sito"); //Inserire la mail dell'amministratore ed il nome del sito
$mail->AddReplyTo("[email protected]","Amministratore");
$mail->AddAddress ($email); //Mail che riceverà chi si iscrive
//$mail->MsgHTML("<html><head></head><body>Questa è una email in <b>Html</b></body></html>");
$mail->AltBody = "Il tuo client di posta non è settato per la ricezione in HTML";
$mail->Subject = "Conferma di registrazione al sito www.sito.com";
$mail->Body = "<p>Ecco il tuo codice di attivazione</p><br />";
$mail->Body .= "<p>Clicca sul link per confermare la registrazione stordito!</p><br />";
$mail->Body .= "<a href=\"http://siti/Biblionet%20test%20MySql/register2.php?passkey=$codiceconferma\">Clicca qui</a>";
if ($mail->Send()){
echo "Tra poco riceverai codice di attivazione per confermare l'iscrizione";
}else{
echo "Si è verificato un errore di trasmissione riprova più tardi" . $mail->errorInfo();
//e dopo 3 secondi torno automaticamente al form ripulito
//echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
//i secondi di attesa possono essere aumentati o diminuiti
}echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
} else {
echo "ERRORE di comnnesione, ti preghiamo di riprovare più tardi<br />" . $mail->errorInfo();
echo "<meta http-equiv='Refresh' content='3; URL=index2.php'>";
}
}
} else {
echo $ok_ko;
echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
}
}
} else {
$passkey = $_GET['passkey'];
$sqlrecuperauser = "SELECT * FROM utenti_temp WHERE codiceconferma = '$passkey'";
$risultatouser = mysql_query($sqlrecuperauser);
if($risultatouser) {
$contauser = mysql_num_rows($risultatouser);
if($contauser == 1){
$rows = mysql_fetch_array($risultatouser);
$username = $rows['username'];
$email = $rows['email'];
$password = $rows ['password'];
$passwordcript = md5($password);
$sqlconfermauser = mysql_query("INSERT INTO utenti (username, password, email) VALUES ('$username', '$passwordcript', '$email')");
if ($sqlconfermauser) {
echo "Il tuo account è stato attivato con successo";
$sqleliminadati = mysql_query("DELETE FROM utenti_temp WHERE codiceconferma = '$passkey'");
} else {
echo "Errore!";
}
}
}
}
?>
<form method="post" id="formregistrazione" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>">
<table class="pinco_pallo">
<tr>
<td><label for="username">Username</label></td>
<td><input type="text" name="username" id="username" /></td>
</tr>
<tr>
<td><label for="password1">Password</label></td>
<td><input type="password" name="password1" id="password1" /></td>
</tr>
<tr>
<td><label for="password2">Ripeti Password</label></td>
<td><input type="password" name="password2" id="password2" /></td>
</tr>
<tr>
<td><label for="email">Email</label></td>
<td><input type="text" name="email" id="email" /></td>
</tr>
<tr>
<td> </td><td><input type="submit" name="invia" id="registrati" value="Registrati" /></td>
</tr>
<tr>
<!--qui ci sta bene un link in modo che l'utente possa uscire senza registrarsi -->
<td> </td><td><a href="index2.php">esci</a></td>
</tr>
</table>
</form>