Codice PHP:
<?php
$error = false;
$reg = false;
function is_mail($mail) {
$mail = htmlentities($mail);
$ok[0] = "it";
$ok[1] = "com";
$ok[2] = "net";
$ok[3] = "org";
$i = true;
foreach($ok as $v) {
if($i == true) {
$i = false;
$stringa = $v;
} else {
$stringa = $stringa."|".$v;
}
}
$eval = ".+@.+\.(".$stringa.")";
if(@ereg($eval,$mail)) {
return true;
} else {
return false;
}
}
$file="utenti.txt";
$apri=fopen($file, 'a+');
$tyr = false;
if(!isset($_GET["step"])) {
$_GET["step"] = "reg";
}
if($_GET['step'] == "conf") {
$username = htmlentities(trim($_GET['username']));
$codice = htmlentities(trim($_GET['codice']));
$array = file($file);
$log="0";
$rc = file_get_contents($file);
foreach($array as $valore) {
$valore = @substr($valore, 0, strlen($valore)-1);
@list($username_file, $password, $email, $codice_file, $attivo)=@explode(',', $valore);
if($username_file == $username and $codice_file == $codice && $attivo == 0 && $tyr == false) {
$log = 3;
$old = $username_file.",".$password.",".$email.",".$codice_file.",".$attivo.",".$cf;
$new = $username_file.",".$password.",".$email.",".$codice_file.",1".",".$cf;
$vr = str_replace($old,$new,$rc);
$fh = fopen($file,"w+");
fwrite($fh,$vr);
fclose($fh);
$tyr = true;
}
}
if($tyr == true) {
echo "Account confermato con successo.";
header("Location: index.php");
} else {
echo "Impossibile confermare l'account.";
}
exit;
} 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']);
$nome=htmlentities($_POST['nome']);
$cognome=htmlentities($_POST['cognome']);
$indirizzo=htmlentities($_POST['indirizzo']);
$citta=htmlentities($_POST['citta']);
$privacy=htmlentities($_POST['privacy']);
$cf=htmlentities($_POST['cf']);
if($username == '' or $password == '' or $email == '') {//se uno o piu campi sono vuoti
$errror = "empty";
} else {
if($password != $rip_password) {//se le due password sono uguali
$error = "pswn";
} 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 ';'
$error = "char";
} else {
if (!is_mail($email)) {//se la sintassi dell'email è scorretta
$error = "email";
} else {
if(strlen($username) < 4) {//se l'username a meno di 4 caratteri
$error = "us4";
} else {
if(strlen($password) < 4) {//se la password a meno di 4 caratteri
$error = "ps4";
} else {
$file='utenti.txt';
$array = file($file);
foreach($array as $valore) {
$valore = @substr($valore, 0, strlen($valore)-1);
@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
$error = "usnv";
}
if($email_file == $email) {//se l'email è gia stata usata
$error = "emnv";
}
}
if($error == false) {
$reg = true;
}
}
}
}
}
}
}
}
if($reg == true) {
$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');
$codice = "";
for($i=0; $i<30; $i++) {
$randcodice=rand(0,count($arraycodice)-1);
$codice.=$arraycodice[$randcodice];//creo il codice di conferma
}
$fh = fopen("utenti.txt","a+");
fwrite($fh,"\n".$username.','.$crypt_password.','.$email.','.$codice.',0;'.$cf);//scrivo sul file
fclose($fh);//chiudo il file
@list($sito, $inutile)=@explode('.', $_SERVER['HTTP_HOST']);//listo nome del sito e la parte inutile
$testo="Ciao ".$username."! Questa e' l'email di conferma del sito http://\"".$_SERVER['HTTP_HOST']."\" di ".$sito." . Per completare la registazione clicca qui href=\"http://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']."?step=conf&username=".$username."&codice=".$codice."\" . Lo Staff";//creo il testo dell email
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";
$mionome="miosito";
mail($email, 'Conferma registrazione', $testo, $target="miosito");//invio l'email
mail($mionome, 'Conferma registrazione', $testo, $nome, $cognome, $indirizzo, $citta, $privacy, $cf, date('d/m/Y H:i:s'), $ipnumb, $username, $password, $target="miosito");//invio l'email
echo "Ti è stata spedita un email dove troverai un link per confermare il tuo indirizzo email!";
//prende IP ADDRESS
if(isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
if ($_SERVER["HTTP_X_FORWARDED_FOR"] == "") {
$ipnumb = getenv("REMOTE_ADDR");
}else {
$ipnumb = getenv("HTTP_X_FORWARDED_FOR");
}
} else {
$ipnumb = getenv("REMOTE_ADDR");
}
$apri1 = fopen("registrazione.txt", 'a+');
$old1 = file("registrazione.txt");
$new1 = "Reg. Utenti = Utente: " . $username . " - Password: " . $password . " - Email: " . $email . " - Nome: " . $nome . " - Cognome: " . $cognome . " - Indirizzo: " . $indirizzo . " - Citta': " . $citta . " - Privacy: Accettata" . $privacy . " - Codice Fiscale: " . $cf . " - Email Inviata!" . " - Data: " . date('d/m/Y H:i:s') . " - Numero IP: " . $ipnumb;
$content = "\r\n";
$vr1 = str_replace($old1,$new1,$content);
$fh1 = fopen("registrazione.txt","a+");
fwrite($fh1,$vr1);
fclose($fh1);
header("Location: conferma.html");
} else {
if(isset($_POST["submit"])) {
switch($error) {
case 'empty':
echo "Riempi tutti i campi!";
break;
case 'pswn':
echo "Le due password non sono uguali!";
break;
case 'char':
echo "Non puoi usare i caratteri '<strong>,</strong>' e '<strong>;</strong>'!";
break;
case 'email':
echo "La sintassi dell'email non è corretta!";
break;
case 'us4':
echo "Username deve avere piu di 4 caratteri!";
break;
case 'ps4':
echo "La password deve avere piu di 4 caratteri!";
break;
case 'usnv':
echo "Username già scelto!";
break;
case 'emnv':
echo "La e-mail è già in uso!";
break;
case false:
echo "Registrazione fallita!";
break;
}
$retry = true;
}
}
if(!isset($_POST["submit"]) || isset($retry)) {
?>
<body style="background-image: url('images/acqua.gif')">
<div class="style1">
<img alt="" src="http://forum.it.altervista.org/images/logoes.gif" width="298" height="228"><br>
<br>
<p class="style9"><strong><em>Area Registrazione Utenti</em></strong></p>
<br>
</div>
<marquee style="font-family: Arial Black; text-decoration: blink" width="505" height="23">Area Registrazione Utenti siete pregati di riempire tutti i campi. La registrazione è gratuita. I vostri dati non saranno in nessun modo divulgati. Grazie!</marquee>