Ciao a tutti , ho completato un codice php per la registrazione.
Adesso ptoreste consigliarmi, se ci sono altri controlli da fare per rendere il codice più sicuro e più accessibile ?
Di funzionare , funziona xD
Potete provarlo , in funzione di prova su
http://www.narakuprova.altervista.org/reg.php
Per test.
Codice PHP:
<?php
/* Conneto al database */
$connessione = mysql_connect("localhost","narakuprova","******")or die("Connessione non riuscita: " . mysql_error());
mysql_select_db("my_narakuprova", $connessione) or die("Errore nella selezione del database");
/* Recupero i dati */
$nome = $_POST['nome'];
$pass = $_POST['pass'];
$mail = $_POST['mail'];
$villo = $_POST['villaggio'];
$sex = $_POST['genere'];
/* Assegno variabile di avanzamento */
$ok = false;
/* 1] Verifico che tutti i campi SONO compilati */
if (empty($nome) || empty($pass) || empty($mail) || empty($villo) || empty($sex))
{
echo " Devi inserire tutti i campi per poter completare la registrazione ";
$ok = false;
}
/* 1] Se tutti i campi NON SONO compilati */
else
{
$ok = true;
}
if ( $ok === true )
{
/* 2a] Verifiche E-MAIL */
/* 2]a Verificio che l'e-mail sia valida */
$pos = strpos($mail, "@");
$pos2 = strpos($mail, " ");
if ($pos === false || $pos2 != false)
{
echo "La tua mail non è valida";
$ok = false;
}
/* 2]b Verificio che l'e-mail non sia già contenuta nel database*/
$mailcontrollo = " SELECT email FROM personaggio WHERE email = '$mail'";
$risultatomail = mysql_query ($mailcontrollo,$connessione);
$trovatimail = mysql_num_rows($risultatomail);
if ($trovatimail > 0)
{
$ok = false;
echo " L'indirizzo e-mail è già associato ad un altro account ";
}
/* 2b] Verificio che la password sia min 4 caratteri e max 8 */
$lungpass = strlen($pass);
if ($lungpass < 4 || $lungpass >8 )
{
echo "</br>" . "La tua password non è valida";
$ok = false;
}
/* 2c] Verifiche Nome */
/* 2c]a Verifico che il nome sia compreso fra le 5 e le 12 lettere */
$lungnome = strlen($nome);
if ($lungpass < 5 || $lungpass >12 )
{
echo "</br>" . "Il tuo nome non è valido";
$ok = false;
}
/* 2c]b Verificare che il nome non sia presente nel database */
$nomecontrollo = "SELECT nome FROM personaggio WHERE nome = '$nome'";
$risultatonome = mysql_query($nomecontrollo,$connessione);
$trovatinome = mysql_num_rows($risultatonome);
if ( $trovatinome > 0)
{
$ok = false;
echo "</br>" . "Il nome è già utilizzato ";
}
}
/* 3] Se tutto è ok , Inseriamo */
if ($ok == true)
{
$inserisci= " INSERT INTO personaggio ( nome , pass , email , sesso ) VALUES ( '$nome' , '$pass' , '$mail' , '$sex' )";
$insquery = mysql_query($inserisci,$connessione);
echo " Registrazione effettuata con successo ";
}
?>