C'è un else sbagliato, eccoti la versione corretta.
Codice PHP:
<?php
// attraverso un if controlliamo che il form sia stato inviato
if ( $_GET['inviodati'] == "ok" ) {
// recuperiamo i dati inviati con il form
$UserName = $_POST['UserName'];
$mail = $_POST['mail'];
$pass1 = $_POST['pass'];
$pass2 = $_POST['pass2'];
// ora controlliamo che i campi siano stati tutti compilati
if ( $mail == TRUE && $UserName == TRUE && $pass1 == TRUE && $pass2 == TRUE ) {
// controlliamo se il campo mail � stato scritto in maniera errata
if( $UserName == TRUE ){
$sql2 = mysql_query("SELECT * FROM tabella_registrati WHERE nick = '$UserName'") or die ("Username già occupato");
$num_rows = mysql_num_rows($sql2);
$email = eregi("^[_a-z0-9+-]+(\.[_a-z0-9+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$",$mail);
if ( $email == TRUE ) {
// controlliamo se l'mail � presente gi� nel database
$sql = mysql_query("SELECT * FROM tabella_registrati WHERE mail = '$mail'") or die ("Mail già occupata");
$num_rows = mysql_num_rows($sql);
if ( $num_rows == 0 ) {
// ora controlliamo che le password inserite siano identiche
if ( $pass1 == $pass2 ) {
// infine criptiamo la password con md5
$pass_md5 = md5($pass1);
mysql_query("INSERT INTO tabella_registrati
(id , nick , mail , pass )
VALUES
('','$UserName','$mail' , '$pass_md5' )") OR DIE(mysql_error());
// e inviamo una mail con la riuscita registazione
$messagem = "Grazie per esserti iscritto.Ecco i tuoi dati: $UserName\r\nPassword: $pass1";
mail ($mail, "Registrazione Farebury", $messagem, "From: [email]Farebury@bury.it[/email]");
// messaggio da far visualizzare all'utente finale
echo "Complimenti registrazione effettuata con successo.";
} else {
echo "Le password non corrispondono";
}
} else {
echo "Indirizzo mail già utilizzato.";
}
} else {
echo "La tua mail non è idonea, per la registrazione.";
}
} else {
echo "Username utilizzato";
}
}else {
echo "Tutti i campi sono obbligatori.";
}
}
Comunque ti consiglio di indentare il codice, è impossibile capire a quale if si riferiscono alcuni else. Infatti con una buona indentazione non avresti avuto problemi a trovare l'errore.