Codice PHP:
<?php
if($_GET['step'] == "conf") {
$username=$_GET['username'];
$codice=$_GET['codice'];
$file="utenti.txt";
$apri=fopen($file, 'r+');
$contenuto=fread($apri, filesize($file));
$array=explode(';', $contenuto);
$log="0";
foreach($array as $valore) {
list($username_file, $password, $email, $codice_file, $attivo)=explode(',', $contenuto);
if($username_file == $username and $codice_file == $codice) {
$log="1";
if($attivo == "1") {
$log="2";
}
}
}
if($log == '0') {
echo"La combinazione username codice non è corretta! Verifica i dati e riprova!";
}
if($log == '1') {
//codice mancante
}
if($log == '2') {
echo"Hai gia confermato l'email!";
}
} else {
if(isset($_POST['submit'])) {//se il form è stato submistato il form
$username=htmlentities($_POST['username']);//raccolgo i dati inviati via post
$password=htmlentities($_POST['password']);
$rip_password=htmlentities($_POST['rip_password']);
$email=htmlentities($_POST['email']);
if($username == '' or $password == '' or $email == '') {//se uno o piu campi sono vuoti
echo"Riempi tutti i campi!";
} else {
if($password != $rip_password) {//se le due password sono uguali
echo"Le due password non sono uguali!";
} else {
if(strpos($username, ',') !== false or strpos($password, ',') !== false or strpos($email, ',') !== false or strpos($username, ';') !== false or strpos($password, ';') !== false or strpos($email, ';') !== false) {//se i dati contengono ',' o ';'
echo"Non puoi usare i caratteri '<strong>,</strong>' e '<strong>;</strong>'!";
} else {
if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$", $email)) {//se la sintassi dell'email è scorretta
echo"La sintassi dell'email non è corretta!";
} else {
if(strlen($username) < 4) {//se l'username a meno di 4 caratteri
echo "Username deve avere piu di 4 caratteri!";
} else {
if(strlen($password) < 4) {//se la password a meno di 4 caratteri
echo "La password deve avere piu di 4 caratteri!";
} else {
$file='utenti.txt';
$apri=fopen($file, 'a+');//apro il file
$contenuto=fread($apri, filesize($file));//leggo il file
$array=explode(';', $contenuto);//divido i dati degli utenti contenuti nel fil di testo
foreach($array as $valore) {
list($username_file, $password_file, $email_file, $codice_file, $attivo_file)=explode(',', $valore);//listo i dati dell'utente
if($username_file == $username) {//se l'uesrname è gia stato scelto
$user_non_valido++;
}
if($email_file == $email) {//se l'email è gia stata usata
$email_non_valido++;
}
}
if($user_non_valido == '1') {
echo"User gia scelto! Scegliene un altro!";
} else {
if($email_non_valido == '1') {
echo"Email gia usata! Usane un altra!";
} else {
$crypt_password=md5($password);//cripto la password
$arraycodice=array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
for($i=0; $i<30; $i++) {
$randcodice=rand(1,31);
$codice.=$arraycodice[$randcodice];//creo il codice di conferma
}
fwrite($apri,$username.','.$crypt_password.','.$email.','.$codice.',0;');//scrivo sul file
fclose($apri);//chiudo il file
list($sito, $inutile)=explode('.', $_SERVER['HTTP_HOST']);//listo nome del sito e la parte inutile
$testo="<p>Ciao ".$username."!<br> Questa è l'emai di conferma del sito <a href=http://\"".$_SERVER['HTTP_HOST']."\">".$sito."</a>.<br>Per completare la registazione clicca <a href=\"http://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']."?step=conf&username=".$username."&codice=".$codice."\">Qui</a>!<br><p align=right>Lo Staff</p></p>";//creo il testo dell email
$head="MIME-Version: 1.0\n";
$head.="Content-Type: text/html; charset=\"iso-8859-1\"\n";
$head.="Content-Transfer-Encoding: 7bit\n\n";
mail($email, 'Conferma registrazione', $testo, $head);//invio l'email
echo"Ti è stata spedita un email dove troverai un link per confermare il tuo indirizzo email!";
}
}
}
}
}
}
}
}
} else {?>
<form method="post">
<input name="submit" type="hidden"/>
<table width="273" border="0">
<tr>
<td width="50%">Username:</td>
<td width="50%"><input name="username" type="text" /></td>
</tr>
<tr>
<td>Password:</td>
<td><input name="password" type="password" /></td>
</tr>
<tr>
<td>Ripeti Password:</td>
<td><input name="rip_password" type="password" /></td>
</tr>
<tr>
<td>Email:</td>
<td><input name="email" type="text" /></td>
</tr>
<tr>
<td align="right"><input type="reset" value="Reset" /></td>
<td><input type="submit" value="Registrati" /></td>
</tr>
</table>
</form>
<? }
}?>
Codice PHP:
<?php
session_start();
if($_SESSION['log'] == '1') {//se l'utente ha gia effetuato il login
header("Location: http://".$_SERVER['HTTP_HOST']."/index.php");//lo mando alla index.php
} else {
if(isset($_POST['submit'])) {//se il form è stato submistato il form
$username=htmlentities($_POST['username']);//raccolgo i dati inviati via post
$password=htmlentities($_POST['password']);
$file='utenti.txt';
$apri=fopen($file, 'r');//apro il file
$contenuto=fread($apri, filesize($file));//leggo il file
fclose($apri);//chiudo il file
$utenti=explode(';', $contenuto);//divido i dati degli utenti contenuti nel fil di testo
$crypt_pass=md5($password);//cripto la password
foreach($utenti as $valore) {
list($username_file, $password_file, $email, $codice, $attivo)=explode(',', $valore);//listo i dati dell utente
if($username_file == $username) {//verifico se l'utente corisponde a quello scelto
$log=1;
if($password_file == $crypt_pass) {//verifico se la password corisponde a quella scelta
$log=2;
if($attivo != '1') {//se l'utente non attivato l'user
echo"Non hai ancora confermato l'email quindi non puoi effetuare il login!";
} else {
$_SESSION['log'] = '1';//setto le sessioni
$_SESSION['username'] = $username;
$_SESSION['email'] = $email;
echo"Login avvenuto con successo! Benvenuto ".$username."!";
}
}
}
}
if($log != '1' or $log != '2') {//se non c'è stato il login
echo"Combinazione username e password sbagliata!";
}
} else {?>
<form method="post">
<input name="submit" type="hidden"/>
<table width="273" border="0">
<tr>
<td width="50%">Username:</td>
<td width="50%"><input name="username" type="text" /></td>
</tr>
<tr>
<td>Password:</td>
<td><input name="password" type="password" /></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" value="Invia"/></td>
</tr>
</table>
</form>
<? }
}?>