Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di Leox94
    Registrato dal
    Nov 2013
    residenza
    Firenze
    Messaggi
    63

    Controllo utente esistente sul db

    Salve a tutti. Sto cercando un modo per risolvere il seguente problema: in pratica questa pagina servirebbe per inserire un nuovo utente, ma il problema è che non riesco ad inserire nessun controllo che interroghi il database se esiste già o no i dati inviati. Adesso se inserisco due utenti con lo stesso nome e cognome vengono inseriti. Qualcuno può aiutarmi? Grazie mille in anticipo


    Codice PHP:
    <?php    session_start();
        if (!isset(
    $_SESSION['login'])) {
            
    header("Location: login.php");
        }
        
        
    // crea il modulo di inserimento nuovi dati
        
    function renderForm($first$last$error)
        {
    ?>
    <!DOCTYPE HTML>
    <html>
    <head>
    <title>Nuovo Record</title>
    <meta charset="UTF-8">
    </head>
    <body>
    <?php
        
    // se ci sono errori vengono visualizzati
        
    if ($error != '')
        {
            echo 
    '<div style="padding:4px; border:1px solid red; color:red;">'.$error.'</div>';
        }
        
    ?>


    <form action="" method="post">
    <div>
    <strong>Nome: *</strong> <input type="text" name="firstname" value="<?php echo $first?>" required /><br/>
    <strong>Cognome: *</strong> <input type="text" name="lastname" value="<?php echo $last?>" required /><br/>
    <p>* Richiesto</p>
    <input type="submit" name="submit" value="Invia">
    </div>
    </form>
    </body>
    </html>
    <?php
        
    }
        
        
    // connessione al database
        
    include('connect-db.php');
        
        
    // verifica se il modulo è stato inviato. Se lo è, inizia a elaborare il modulo e lo salva nel database
        
    if (isset($_POST['submit']))
        {
            
    // ottenere i dati del modulo e verific che siano validi
            
    $firstname mysql_real_escape_string(htmlspecialchars($_POST['firstname']));
            
    $lastname mysql_real_escape_string(htmlspecialchars($_POST['lastname']));
            
            
    // controlla che entrambi i campi vengono inseriti
            
    if ($firstname == '' || $lastname == '')
            {
                
    // genera messaggio di errore
                
    $error 'ERROR: Please fill in all required fields!';
                
                
    // se uno dei due campi è vuoto, visualizzo di nuovo il modulo
                
    renderForm($firstname$lastname$error);
            }
            else
            {
                
    // salva i dati nel database
                
    mysql_query("INSERT players SET firstname='$firstname', lastname='$lastname'")
                or die(
    mysql_error());
                
                
    // una volta salvato, si viene reindirizzati alla pagina di visualizzazione
                
    header("Location: view.php");
            }
        }
        else
        
    // se il modulo non è stato inviato, visualizzare il modulo
        
    {
            
    renderForm('','','');
        }
    ?>

  2. #2
    controlla se l'utente esiste gia':
    Codice PHP:
    $query="SELECT * FROM players WHERE firstname='$firstname' AND lastname='$lastname'";
    $result=mysql_query($query);
    if(
    mysql_num_rows($result)==0)
    {

    //procedi all'inseriemnto dell' utente
    }
    else
    {
    //esiste gia


  3. #3
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Ma perchè? E' normale che due persone possano avere lo stesso nome e cognome. Mio figlio ha lo stesso nome e cognome di mio padre. Quindi non hanno diritto a iscriversi entrambi, ognuno con il proprio account? Non a caso di norma in fase di registrazione si fa inserire un nickname, o un indirizzo mail, che sia unico all'interno della base dati.

    Siamo sempre troppo gelosi delle nostre grandi piccole opere! - Grino inedito.
    Lavori e Lavoretti

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2012
    Messaggi
    27
    solitamente per cose del genere faccio cosi

    Codice PHP:
    $query "SELECT * FROM players WHERE firstname='$firstname' AND lastname='$lastname'";
    $mysql_results mysql_query($query);
    $fetch mysql_fetch_array($mysql_results);
    $nome $fetch['firstname'];
    $cognome $fetch['lastname'];
    if(
    $firstname == $nome AND $lastname == $cognome){
    //non iserire
    }
    else {
    //inserire

    comunque credo che il metodo di E.d.i73 sia migliore
    dalla prossima volta farò cosi xD

  5. #5
    comunque credo che il metodo di E.d.i73 sia migliore
    dalla prossima volta farò cosi xD
    Be' era l'esempio in quella situazione, concordo con Grino che il controllo migliore è quello di verificare nikname o indirizzo email che anche in caso di utenti che hanno nome e cognome uguali si rendono univoci:
    Codice PHP:
    $query="SELECT * FROM players WHERE email='$email'";
    $result=mysql_query($query);
    if(
    mysql_num_rows($result)==0)
    {

    //procedi all'inserimento dell' utente
    }
    else
    {
    //esiste gia


  6. #6
    Utente di HTML.it L'avatar di Leox94
    Registrato dal
    Nov 2013
    residenza
    Firenze
    Messaggi
    63
    Quote Originariamente inviata da E.d.i.73 Visualizza il messaggio
    controlla se l'utente esiste gia':
    Codice PHP:
    $query="SELECT * FROM players WHERE firstname='$firstname' AND lastname='$lastname'";
    $result=mysql_query($query);
    if(
    mysql_num_rows($result)==0)
    {

    //procedi all'inseriemnto dell' utente
    }
    else
    {
    //esiste gia

    Solo un piccolo chiarimento: questa istruzione dove la devo inserire? Scusami l'ignoranza ma sono alle prime armi. grazie ancora per il tempo che mi stai dedicando

  7. #7
    Solo un piccolo chiarimento: questa istruzione dove la devo inserire?
    Come puoi leggere nei post precedenti sarebbe meglio fare il controllo per username o indirizzo email, cmq devi modificare la condizione if/else così:
    Codice PHP:
    // controlla che entrambi i campi vengono inseriti
            
    if ($firstname == '' || $lastname == '')
            {
                
    // genera messaggio di errore
                
    $error 'ERROR: Please fill in all required fields!';
                
                
    // se uno dei due campi è vuoto, visualizzo di nuovo il modulo
                
    renderForm($firstname$lastname$error);
            }
            else
            {
                  
    $query="SELECT * FROM players WHERE firstname='$firstname' AND lastname='$lastname'";
                  
    $result=mysql_query($query);
                             if(
    mysql_num_rows($result)==0)
                                  {

                                    
    //procedi all'inseriemento dell' utente
    // salva i dati nel database
                
    mysql_query("INSERT players SET firstname='$firstname', lastname='$lastname'")
                or die(
    mysql_error());
                
                
    // una volta salvato, si viene reindirizzati alla pagina di visualizzazione
                
    header("Location: view.php");
                                   }
                                  else
                                    {
                                     
    //esiste gia redirect a una pagina che fa viusalizzare il messaggio
                                        
    header("location:error.php");
                                     }  

           } 

  8. #8
    Utente di HTML.it L'avatar di Leox94
    Registrato dal
    Nov 2013
    residenza
    Firenze
    Messaggi
    63
    Grazie tante! Sei stato utilissimo.
    Buona giornata

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.