Codice PHP:
<?php
include ("config.php");
//Lancia il form
if (isset($_POST['email'])){
//Proteggi da XSS
$search = array("&", "\"", "'", "\\", "<", ">");
$replace = array("&", """, "'", "\", "<", ">");
$var_post = count($_POST);
$keys = array_keys($_POST);
for ($fix=0; $fix<$var_post; $fix++)
$_POST = str_replace($search, $replace, $_POST);
//Variabili di invio dal Form
$Email=$_POST['email'];
$Password=$_POST['password'];
$Password2=$_POST['password2'];
$Nome=$_POST['nome'];
$Cognome=$_POST['cognome'];
$Data=$_POST['data'];
$Sesso=$_POST['Sesso'];
$Indirizzo=$_POST['indirizzo'];
$Citta=$_POST['citta'];
$Provincia=$_POST['provincia'];
$Cap=$_POST['cap'];
$Telefono=$_POST['telefono'];
$Fax=$_POST['fax'];
$Cell=$_POST['cell'];
$Cf=$_POST['cf'];
//Proteggi da Sql Injection
if (!preg_match("/^[a-z]+$/",$Nome)) { die("ATTENZIONE, il nome ".$Nome." contiene caratteri vietati."); }
if (!preg_match("/^[a-z]+$/",$Cognome)) { die("ATTENZIONE, il cognome ".$Cognome." contiene caratteri vietati."); }
if (!preg_match("/^[a-z]+$/",$Sesso)) { die("ATTENZIONE, il nome ".$Sesso." contiene caratteri vietati."); }
if (!preg_match("^[a-z0-9]+$",$Password)) { die("ATTENZIONE, la password ".$Password." contiene caratteri vietati."); }
if (!preg_match("/^[a-z0-9]+$/",$Password2)) { die("ATTENZIONE, la password ".$Password2." contiene caratteri vietati."); }
if (!preg_match("/^[a-z0-9]+$/",$Indirizzo)) { die("ATTENZIONE, l'indirizzo ".$Indirizzo." contiene caratteri vietati."); }
if (!preg_match("/^[a-z]+$/",$Citta)) { die("ATTENZIONE, la Città ".$Citta." contiene caratteri vietati."); }
if (!preg_match("/^[a-z]+$/",$Provincia)) { die("ATTENZIONE, la Provincia ".$Provincia." contiene caratteri vietati."); }
if (!preg_match("/^[0-9]+$/",$Cap)) { die("ATTENZIONE, il Cap ".$Cap." contiene caratteri vietati."); }
if (!preg_match("/^[0-9]+$/",$Telefono)) { die("ATTENZIONE, il numero di Telefono".$Telefono." contiene caratteri vietati."); }
if (!preg_match("/^[0-9]+$/",$Fax)) { die("ATTENZIONE, il numero di Fax ".$Fax." contiene caratteri vietati."); }
if (!preg_match("/^[0-9]+$/",$Cell)) { die("ATTENZIONE, il numero di Cell ".$Cell." contiene caratteri vietati."); }
//Controlla data
if(!preg_match("/^[0-9]{2}/[0-9]{2}/[0-9]{4}$/", $Data)){
return false;
}else{
$arrayData = explode("/", $Data);
$Giorno = $arrayData[0];
$Mese = $arrayData[1];
$Anno = $arrayData[2];
if(!checkdate($Mese, $Giorno, $Anno)){
return false;
}else{
return true;
}
}
//Controllo campi obbligatori
if (!$Email | !$Password | !$Nome | !$Cognome | !$Data | !$Sesso | !$Indirizzo | !$Citta | !$Provincia | !$Cap | !$Telefono | !$Cell | !$Cf ) { die('Tutti i campi contrassegnati da un *, devono essere completati, Grazie.');
//Controlla che l'utente non sia già registrato
if (!get_magic_quotes_gpc()) {
$Cf = addslashes($Cf);
}
$usercheck = $Cf;
$check = mysql_query("SELECT user_code FROM user WHERE code = '$usercheck'") or die(mysql_error());
$check2 = mysql_num_rows($check);
//if Avvisa se questo utente esiste già
if ($check2 != 0) { die("ATTENZIONE, L'utente ".$Cf." è già presente nei nostri archivi.");
}
//Controllo email
if (!get_magic_quotes_gcp()) {
$Email = addslashes($Email);
}
$mailcheck = $Email;
$check = mysql_query("SELECT user_email FROM user WHERE user_email = '$mailcheck'") or die(mysql_error());
$mailcheck2 = mysql_num_rows($check);
//if Avvisa se questa email esiste già
if ($mailcheck2 != 0) { die("ATTENZIONE, L'Email ".$Email." è già presente nei nostri archivi.");
}
//Verifica se l'email è corretta
if (!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z]{2,3})$/",$Email)) { die("ATTENZIONE, L'Email ".$Email." è incorretta."); }
//Verifica la password
if ($Password != $Password2) { die("Le password non corrispondono."); }
//Cripta la password in md5
$Passworr = md5($Password);
if (!get_magic_quotes_gpc()) {
$Password = addslashes($Password);
$Email = addslashes($Email);
}
//controllo formale del Codice Fiscale
if( $Cf == '' ) { die(""); }
if( strlen($Cf) !=16) { die("La lunghezza del codice fiscale non è corretta: il codice fiscale drovrebbe essere lungo esattamente 16 caratteri."); }
$Cf = strtoupper($Cf);
if( ! preg_match("/^[A-Z0-9]+$/", $Cf)) { die("Il codice fiscale contiene dei caratteri non validi: i soli caratteri validi sono le lettere e le cifre."); }
$s = 0;
for( $i = 1; $i <= 13; $i += 2 ) {
$c = $Cf[$i];
if( '0' <= $c && $c <= '9' )
$s += ord($c) - ord('0');
else
$s += ord($c) - ord('A');
}
for( $i = 0; $i <= 14; $i += 2 ) {
$c = $Cf[$i];
switch( $c ) {
case '0': $s += 1; break;
case '1': $s += 0; break;
case '2': $s += 5; break;
case '3': $s += 7; break;
case '4': $s += 9; break;
case '5': $s += 13; break;
case '6': $s += 15; break;
case '7': $s += 17; break;
case '8': $s += 19; break;
case '9': $s += 21; break;
case 'A': $s += 1; break;
case 'B': $s += 0; break;
case 'C': $s += 5; break;
case 'D': $s += 7; break;
case 'E': $s += 9; break;
case 'F': $s += 13; break;
case 'G': $s += 15; break;
case 'H': $s += 17; break;
case 'I': $s += 19; break;
case 'J': $s += 21; break;
case 'K': $s += 2; break;
case 'L': $s += 4; break;
case 'M': $s += 18; break;
case 'N': $s += 20; break;
case 'O': $s += 11; break;
case 'P': $s += 3; break;
case 'Q': $s += 6; break;
case 'R': $s += 8; break;
case 'S': $s += 12; break;
case 'T': $s += 14; break;
case 'U': $s += 16; break;
case 'V': $s += 10; break;
case 'W': $s += 22; break;
case 'X': $s += 25; break;
case 'Y': $s += 24; break;
case 'Z': $s += 23; break;
}
}
if( chr($s%26 + ord('A')) != $Cf[15] ) { die("Il codice fiscale non è corretto: il codice di controllo non corrisponde."); }
{ die(""); }
}
//Scrivi dati sul database Sql
mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname);
$sql="INSERT INTO `shop`.`user` (`user_id`, `user_name`, `user_cogn`, `user_email`, `user_password`, `user_sex`, `user_nascita`, `user_code`, `user_soci`, `user_iva`, `user_via`, `user_provincia`, `user_stato`, `user_citta`, `user_cap`, `user_tel`, `user_cel`, `user_fax`) VALUES (NULL, '$Nome', '$Cognome', '$Email', '$Password', '$Sesso', '$Data', '$Cf', NULL, NULL, '$Indirizzo', '$Provincia', '$Stato', '$Citta', '$Cap', '$Telefono', '$Cell', NULL);";
if (mysql_query($sql)){
echo"Registrazzione avvenuta con successo";
}else{
echo"Registrazione fallita, riprova";
}
}
?>
<form action='register.php' method='post'>
<table border='0'>
<tr><td>Email login:</td><td>
<input type='text' name='Email' maxlength='60'>
</td></tr>
<tr><td>Password:</td><td>
<input type='password' name='Password' maxlength='16'>
</td></tr>
<tr><td>Conferma Password:</td><td>
<input type='password' name='Password2' maxlength='16'>
</td></tr>
<tr><td>Nome:</td><td>
<input type='text' name='Nome' maxlength='60'>
</td></tr>
<tr><td>Cognome:</td><td>
<input type='text' name='Cognome' maxlength='60'>
</td></tr>
<tr><td>Data di nascita:(gg/mm/yyyy)</td><td>
<input type='text' name='Data' maxlength='60'>
</td></tr>
<tr><td>Sesso:</td><td>
Maschio:<input type='checkbox' name='Sesso' value='Maschio' />Femmina:<input type='checkbox' name='Sesso' value='Femmina' />
</td></tr>
<tr><td>Indirizzo:</td><td>
<input type='text' name='Indirizzo' maxlength='60'>
</td></tr>
<tr><td>Città:</td><td>
<input type='text' name='Citta' maxlength='60'>
</td></tr>
<tr><td>Provincia:</td><td>
<input type='text' name='Provincia' maxlength='60'>
</td></tr>
<tr><td>Cap:</td><td>
<input type='text' name='Cap' maxlength='6'>
</td></tr>
<tr><td>Telefono:</td><td>
<input type='text' name='Telefono' maxlength='60'>
</td></tr>
<tr><td>Cellulare:</td><td>
<input type='text' name='Cell' maxlength='60'>
</td></tr>
<tr><td>Codice Fiscale:</td><td>
<input type='text' name='Cf' maxlength='60'>
</td></tr>
<tr><th colspan=2><input type='submit' name='Submit' value='Registrati'></th></tr> </table>
</form>
Allora il problema è il seguente: lo script php non sembra segnarmi nessun tipo di errore, ma quando vado a testare il tutto i dati non vengono salvati nel DB....