[PHP] Controllo nome utente form di registrazione

Discussione in 'PHP' iniziata da Andrea_2017, 18 Febbraio 2019.

  1. Andrea_2017

    Andrea_2017 Nuovo Utente

    Registrato:
    17 Settembre 2017
    Messaggi:
    25
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    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'];
            
    $nomehtmlentities($nom);
            
    $sesso_pg $_POST['sesso'];
            
    $sessohtmlentities($sesso_pg);
            
    $email $_POST['mail'];
            
    $mailhtmlentities($email);
            
    $pax1 $_POST['pass'];
            
    $pass1htmlentities($pax1);
            
    $pax2 $_POST['pass2'];
            
    $pass2htmlentities($pax2);
            
    $naz $_POST['naz'];
            
    $nazhtmlentities($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 == ) {
                        
    #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 == ) {
                                        
    // 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: postmaster@********.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
     
  2. xone

    xone Utente Attivo

    Registrato:
    4 Aprile 2014
    Messaggi:
    179
    Mi Piace Ricevuti:
    13
    Punteggio:
    18
    Sesso:
    Maschio
    Occupazione:
    Consulente Seo & Digital Marketing
    Località:
    Salento
    Home Page:
    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'];
            
    $mailhtmlentities($email);
            
    $pax1 $_POST['pass'];
            
    $pass1 htmlentities($pax1);
            
    $pax2 $_POST['pass2'];
            
    $pass2htmlentities($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 == ) {
                       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 == ) {
                                        
    // 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: postmaster@********.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: 22 Febbraio 2019
  3. Max 1

    Max 1 Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    29 Febbraio 2012
    Messaggi:
    3.768
    Mi Piace Ricevuti:
    283
    Punteggio:
    83
    Sesso:
    Maschio
    @xone
    Da regolamento del forum, come tutti noi sei tenuto ad usare il tag [​IMG] o il tag [​IMG] per il PHP, quando posti del codice, oppure la funzione codice dalla barra degli strumenti
    [​IMG]
    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
     
  4. Andrea_2017

    Andrea_2017 Nuovo Utente

    Registrato:
    17 Settembre 2017
    Messaggi:
    25
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    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.
     
  5. xone

    xone Utente Attivo

    Registrato:
    4 Aprile 2014
    Messaggi:
    179
    Mi Piace Ricevuti:
    13
    Punteggio:
    18
    Sesso:
    Maschio
    Occupazione:
    Consulente Seo & Digital Marketing
    Località:
    Salento
    Home Page:
    Ottimo. Per Max, mi scuso, sono stato un bel po' lontano dal forum e mi è davvero sfuggito l'uso del tag codice.
     
Sto caricando...

Condividi questa Pagina