Originariamente inviato da M4rko
Per gli array associativi, la chiave è una stringa è quindi va messa tra apici:
$_POST[cmd] diventa $_POST['cmd'] e cosi via
Per i controlli sulle variabili puoi utilizzare empty(), es:
codice:
if (empty($_POST['email'])) {
echo 'Errore: il campo "E-mail" è obbligatorio';
}
Oltre che un controllo sulla lunghezza dei campi (con strlen() )
Inoltre tutti i dati che arrivano dall'esterno ($_POST, $_GET e $_COOKIE) vanno filtrati prima di essere passati ad una query, onde evitare SQL Injection (utilizza mysql_escape_string() oppure mysql_real_escape_string() )
Per evitare doppioni di nick nel database, verifica che non ci sia già lo stesso nick prima di fare la query di INSERT, con una query del tipo:
codice:
$sql = "
SELECT id
FROM utenti
WHERE nickname LIKE '{$nickname}'
";
$result = mysql_query($sql);
if (mysql_num_rows($result) != 0) {
echo 'Errore: nickname già inserito nel database';
}
else {
// Avanti con la INSERT
}
(LIKE serve proprio a non discriminare tra maiuscole e minuscole)
Per validare un'email puoi utilizzare una espressione regolare (vedi l'articolo su php.html.it, c'è proprio quell'esempio)
Per il controllo della password, semplicemente verifica che le stringhe siano uguali:
codice:
if ($_POST['password'] != $_POST['conferma_password']) {
echo 'Errore: ricontrolla la password';
}
Ovviamente la stringhe devono essere non vuote (verifica con empty() )