Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Controllo dati FORM

  1. #1

    Controllo dati FORM

    Ho un form con :

    Username [ ]
    Passowrd [ ]
    Email [ ]

    [Registrati]

    Quando l'utente clicca su registrati devo effettuare i seguenti controlli :
    - username già presente nel db o campo vuoto
    - campo password vuoto
    - campo email vuoto

    Ho fatto così :

    codice:
    <div id="dati">
            
                        <?php 
                    if (isset($_POST['registra'])) {
                    include '../inc/connect.php';
                    $user=mysql_real_escape_string($_POST['username']);
                    $query="SELECT * FROM users WHERE username= '{$user}'";
                    $result= mysql_query($query,$connect) or die("Errore");
                    $err='';
                        if(empty($_POST['username'])) {
                        echo'<center>Il campo Username è vuoto.</center>'; }
                        elseif ( mysql_num_rows($result) == "1" ) {
                        echo 'Username già presente nel DB.';}
                        elseif(empty($_POST['password'])) {
                       $err .= 'Il campo Password è vuoto
    ';}
                       elseif(empty($_POST['email'])){
                       $err .= 'Il campo Email è vuoto o non è corretto
    ';}
                        } else {
                            echo 'Tutto OK!';
                        /* INSERIMENTO DATI NEL DB */
                        }
                        
            echo '<form name="dati" method="post">
            <center>Username : <input type="text" name="username"/> 
            <center> Password : <input type="password" name="password"/> 
    
    
            Email : <input type="text" name="email" value="tua@email.it"/>
            
    
    <input type="submit" name="registra" value="Registrati"/></center>
            </form> ';?>
            
            </div>
    Un controllo a scaletta... che però non va... dove sbaglio?

  2. #2
    "non va" non significa assolutamente nulla. Qual'è l'errore o il problema?
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Scusami... allora... se metto un username già presente nel DB non esce il messaggio Username già presente nel DB. ma ho messaggio di errore solo se il campo vuoto ... per gli altri due campi (password e email) è come se non avvenisse nessun controllo visto che se li lascio vuoti non esce nessun messaggio

  4. #4
    Codice PHP:
    <div id="dati">
    <?php 
    if (isset($_POST['registra'])) {
        include 
    '../inc/connect.php';
        
    $user mysql_real_escape_string($_POST['username']);
        
    $query "SELECT * FROM users WHERE username='{$user}'";
        
    $result mysql_query($query,$connect) or die("Errore");
        
    $err '';
        if (empty(
    $_POST['username'])) {
            echo
    '<center>Il campo Username è vuoto.</center>'
        }    elseif (
    mysql_num_rows($result) == "1") {
            echo 
    'Username già presente nel DB.';
        }    elseif (empty(
    $_POST['password'])) {
            
    $err .= 'Il campo Password è vuoto
    '
    ;
        }    elseif (empty(
    $_POST['email'])) {
            
    $err .= 'Il campo Email è vuoto o non è corretto
    '
    ;
        }
    } else {
        echo 
    'Tutto OK!';
        
    /* INSERIMENTO DATI NEL DB */
    }

    echo 
    '<form name="dati" method="post">
    <center>Username : <input type="text" name="username"/>    
    <center> Password : <input type="password" name="password"/> 


    Email : <input type="text" name="email" value="tua@email.it"/>


    <input type="submit" name="registra" value="Registrati"/></center>
    </form> '
    ;
    ?>
    </div>
    Il tuo codice è un po' incasinato.

    Utilizzi $_POST['username'] per effettuare la query, ma solo successivamente controlli se esso è valorizzato. Poi se utilizzi l'elseif è ovvio che verrà eseguito solamente il codice corrispondente alla condizione vera per cui i controlli sugli altri campi non avverranno mai.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Lo sò che è incasinato... non programmo da molto in php/mysql

    Poi se utilizzi l'elseif è ovvio che verrà eseguito solamente il codice corrispondente alla condizione vera per cui i controlli sugli altri campi non avverranno mai.
    Hai ragione ... che stupido che sono

    Come soluzione ho pensato di controllare il contenuto dei campi ... cioè ... se non sono vuoti allora esegui la query , altrimenti dai errore..

    codice:
    $user=$_POST['username'];
    $pass=$_POST['password'];
    
    if ($user!=null and $pass!=null )
    { query }
    else { errore }
    Oppure c'è qualcos'altro?
    Grazie per l'aiuto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.