<!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 ("admin@sito.com","Sito");		//Inserire la mail dell'amministratore ed il nome del sito
    				$mail->AddReplyTo("noreply@sito.com","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>