[PHP] Controllo nome utente form di registrazione

Andrea_2017

Utente Attivo
17 Set 2017
26
0
1
37
Ciao a tutti, ho un problemino con il controllo dell'esistenza del nome utente sul database.
In sostanza il codice scritto mi impedisce l'iscrizione di un utente con un nome già presente sul database,ma non fa comparire il messaggio che segue dopo l'or die e mi rimanda alla stessa pagina che viene visualizzata in fase di iscrizione.
Posto di seguito il codice php:
PHP:
<?php

require 'config/includes.php';
$db=dbconnect();

    if (!empty($_POST['nome'])) {
   
        $nom = $_POST['nome'];
        $nome= htmlentities($nom);
        $sesso_pg = $_POST['sesso'];
        $sesso= htmlentities($sesso_pg);
        $email = $_POST['mail'];
        $mail= htmlentities($email);
        $pax1 = $_POST['pass'];
        $pass1= htmlentities($pax1);
        $pax2 = $_POST['pass2'];
        $pass2= htmlentities($pax2);
        $naz = $_POST['naz'];
        $naz= htmlentities($naz);
        #controllo che il nome scelto non sia attualmente in uso
        $checknome = mysql_query("SELECT * FROM personaggi WHERE nome = '$nome'") or die ("Nome in uso");
        $nom_rows = mysql_num_rows($checknome);
            if ( $nom_rows == 0 ) {
                    #controllo il format della mail
                    $email = eregi("^[_a-z0-9+-]+(\.[_a-z0-9+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$",$mail);
                        if ( $email == TRUE ) {
                            // checkmail
                            $checkmail = mysql_query("SELECT * FROM personaggi WHERE mail = '$mail'") or die ("Mail  occupata");
                            $num_rows = mysql_num_rows($checkmail);
                                if ( $num_rows == 0 ) {
                                    // controlliamo che le password inserite siano identiche
                                    if ( $pass1 == $pass2 ) {
                                        $pass_sha = sha1($pass1);
                                        mysql_query("INSERT INTO personaggi
                                            (nome, sesso, pass , naz , mail, iscrizione)
                                            VALUES
                                            ('$nome', '$sesso', '$pass_sha', '$naz', '$mail', NOW())") OR DIE(mysql_error());
                                       
                                        // inviamo una mail con la riuscita registazione
                                        mail ($mail, "Registrazione OK", "Complimenti registrazione effettuata con successo. Nome utente: '$nome'. Password: '$pass1'", "From: [email protected]********.com");
                                       
                                        // messaggio da far visualizzare all'utente finale
                                        echo "Complimenti registrazione effettuata con successo<br>Nome utente: $nome. Password: $pass1<br>Ti � stata inviata una mail di riepilogo all'indirizzo $mail";
                                       
                                        header("Location: fineiscrizione.php", true);
                                }
                        }
                }
           
    }
}
mysql_close();
?>
Cosa c'è di sbagliato?Qualcuno potrebbe aiutarmi ad inviduare l'errore?
Grazie in anticipo
 

xone

Utente Attivo
4 Apr 2014
181
14
18
Salento
Ciao prova cosi:
PHP:
<?php

require 'config/includes.php';
$db=dbconnect();

    if (!empty($_POST['nome'])) {
 
        $nom = $_POST['nome'];
        $nome = htmlentities($nom);
        $sesso_pg = $_POST['sesso'];
        $sesso = htmlentities($sesso_pg);
        $email = $_POST['mail'];
        $mail= htmlentities($email);
        $pax1 = $_POST['pass'];
        $pass1 = htmlentities($pax1);
        $pax2 = $_POST['pass2'];
        $pass2= htmlentities($pax2);
        $naz = $_POST['naz'];
        $naz = htmlentities($naz);
        #controllo che il nome scelto non sia attualmente in uso
        $checknome = mysql_query("SELECT * FROM personaggi WHERE nome = '$nome'");
        $nom_rows = mysql_num_rows($checknome);
      
            if ( $nom_rows == 1 ) {
                   echo 'Nome in uso';
                   }else{         
                    #controllo il format della mail
                    $email = eregi("^[_a-z0-9+-]+(\.[_a-z0-9+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$",$mail);
                        if ( $email == TRUE ) {
                            // checkmail
                            $checkmail = mysql_query("SELECT * FROM personaggi WHERE mail = '$mail'") or die ("Mail  occupata");
                            $num_rows = mysql_num_rows($checkmail);
                                if ( $num_rows == 0 ) {
                                    // controlliamo che le password inserite siano identiche
                                    if ( $pass1 == $pass2 ) {
                                        $pass_sha = sha1($pass1);
                                        mysql_query("INSERT INTO personaggi
                                            (nome, sesso, pass , naz , mail, iscrizione)
                                            VALUES
                                            ('$nome', '$sesso', '$pass_sha', '$naz', '$mail', NOW())") OR DIE(mysql_error());
                                      
                                        // inviamo una mail con la riuscita registazione
                                        mail ($mail, "Registrazione OK", "Complimenti registrazione effettuata con successo. Nome utente: '$nome'. Password: '$pass1'", "From: [email protected]********.com");
                                      
                                        // messaggio da far visualizzare all'utente finale
                                        echo "Complimenti registrazione effettuata con successo<br>Nome utente: $nome. Password: $pass1<br>Ti � stata inviata una mail di riepilogo all'indirizzo $mail";
                                      
                                        header("Location: fineiscrizione.php", true);
                                }
                        }
                }
          
    }
}
mysql_close();
?>
 
Ultima modifica di un moderatore:

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.404
339
83
@xone
Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
code-gif.6007
o il tag
php-png.6009
per il PHP, quando posti del codice, oppure la funzione codice dalla barra degli strumenti
box-inserisci-2-png-jpg.6008

Inoltre ti prego di leggere attentamente il regolamento generale del forum e quello di sezione dove posti
Grazie
Per questa volta te lo sistemo io ma mi raccomando per il futuro
 

Andrea_2017

Utente Attivo
17 Set 2017
26
0
1
37
Grazie mille Xone!ho risolto con la tua correzione!Ho solo modificato togliendo l'echo e aggiungendo un header cosi che il messaggio venga reindirizzato su una pagina apposita.
 

xone

Utente Attivo
4 Apr 2014
181
14
18
Salento
Ottimo. Per Max, mi scuso, sono stato un bel po' lontano dal forum e mi è davvero sfuggito l'uso del tag codice.
 
Discussioni simili
Autore Titolo Forum Risposte Data
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
C [PHP] Controllo <select> comportamento anomalo PHP 2
L [PHP] controllo dimensione immagine per il resize PHP 2
P [PHP] Controllo al checkbox privacy PHP 6
T [php] controllo su estensione file PHP 7
M [PHP] Script per controllo disponibilitá negozio in citta PHP 4
F Controllo dati sui campi di input tramite php PHP 1
M [PHP] Dubbio controllo IF PHP 15
M [PHP] Controllo campo cap con trattino oltre ai numeri PHP 3
Fede72 Controllo registrazioni PHP Mysql PHP 5
bubino8 [PHP] Controllo Log e Modifiche Utenti PHP 5
P [PHP] Realizzare un controllo accessi cantiere, problema lettore Qrcode... PHP 0
M [PHP] Controllo inserimento in tempo reale PHP 0
M [PHP] Help: controllo valori inseriti in un campo PHP 1
M [PHP] Impedire di digitare determinati caratteri nell’input (controllo in tempo reale) PHP 4
giancadeejay [PHP] Controllo inserimento tot caratteri PHP 5
giancadeejay [PHP] Controllo su quantita' di caratteri inseriti, in colonna db PHP 5
CristianB72 [PHP] Controllo sintassi indirizzo email non funziona PHP 13
M [PHP] controllo inserimento dati un un form PHP 4
ANDREA20 [PHP] Controllo email se e valida PHP 5
P controllo browser sul server o in php? PHP 2
F controllo form php con restituzione errori nella form PHP 10
B Problemi con pannello di controllo PHP PHP 0
B Problemi con pannello di controllo PHP PHP 0
L [php] upload controllo dimensione immagine PHP 8
Z Controllo campi di un form php PHP 5
X Eseguire controllo su variabili php PHP 1
P Controllo php su checkbox PHP 2
X controllo e scrittura su db mysql con pagine php PHP 4
P controllo dati form con jquery e php PHP 8
L [PHP e FTP upload] controllo file allegato PHP 6
L [PHP] Sapere se si lavora in locale o remoto (Controllo server Database) PHP 1
max_400 Messenger HTML - PHP - Controllo script PHP 29
A Sicurezza e controllo password in PHP PHP 4
X Controllo versione minima PHP PHP 1
E campo controllo in formail php PHP 1
G Script php per invio email con controllo sintassi e record MX PHP 0
G Script php per invio email con controllo sintassi e record MX PHP 7
M Visulizzare immagine con php PHP 8
G leggere file txt e stampare con php il contenuto a video PHP 7
F Ricreare struttura php+mysql su Xampp Apache 0
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
M Array associativi php su 2 campi mysql PHP 10
G Invio form con PHP PHP 3
T fatture con voci fattura in php PHP 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
M Collegamento tra form html e script php PHP 4
M Problemi con la stampa dei valori in php PHP 1
W [Cerco collaborazioni] Sviluppatore Web (PHP) Offerte e Richieste di Lavoro e/o Collaborazione 1
D passare valori da database sql a php PHP 1

Discussioni simili