Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Controllare se un username è già presente nel DB

    Ciao a tutti, come faccio per evitare di memorizzare in un Db MYSQL, un dato già esistente??

    Mi spiego meglio:
    Da un form raccolgo dei dati e in particolare Username e Password, questi dati poi vengono memorizzati in un Db mediante uno script.
    Allora io vorrei fare un controllo sull' username, se l'user immesso è già prensente nel Db vorrei far visualizzare un errore, mentre se l'user non è presente lo memorizzo. Si può fare questo controllo??

    Grazie e ciao a tutti

  2. #2
    Si, si può fare!
    selezioni dalla tabella i record che hanno lo stesso nome che vuoi inserire, li conti se il risultato e uguale a 0 vuol dire che non c'è nessuna linea con quel valore e si può memorizzare se invece non e uguale a zero vuol dire che c'è gia un record con quel valore e non glielo fai memeorizzare!!


  3. #3
    beh ci sono due vie o lo fai da mysql e imposti il campo con chiave unica oppure come ha detto Markus puoi farlo con una query e il controllo di esistenza della riga

  4. #4
    scusami ma come si fa a selezionare da una tabella i record con lo stesso user??

    Mi potresti postare la query per piacere?

  5. #5
    quale è il metodo migliore??
    Direttamente da Mysql oppure mediante una query??

    Come posso procedere in entrambi i casi?

  6. #6
    Codice PHP:
    $query "SELECT username FROM  utenti WHERE username = '$username_che_gli_passi'";
    $risultato mysql_query($query$db);
    $num mysql_num_rows ($risultato);
    if(
    $num == '0'){
    puoi salvare il record
    }else{
    errore record gia esistente


  7. #7
    si, esatto..

  8. #8
    Se non è troppo disturbo ti faccio un altra domanda che secondo me è molto simile.

    La domanda riguarda il login, cioè quando un utente inserisce username password, come faccio a fare il confronto tra la password l'username inseriti e quelli memorizzati nel DB. Io avevo pensato di fare il confronto mediante il metodo if-else. Fare questo non è molto difficile, ma prima di fare il confronto devo richiamare tutti gli username e le password memorizzate nel db e poi fare il confronto con quelli passati dal form login?

    Oppure esiste un altro metodo migliore e più leggero??
    Infatti secondo me richiamare tutti l'username e le password memorizzate nel Db, mi sembra eccessivo

  9. #9
    No assolutamente non richiamare tutti gli username!

    fai una query di questo tipo:
    Codice PHP:
    $query "SELECT  password  FROM  utenti WHERE name  = '$Nome_che_gli_passi'  LIMIT    1";
    $result mysql_query($query$db);         
    $row mysql_fetch_assoc($result);
    $num mysql_num_rows ($result);
    if (
    $result != '0'){
    if(
    $row[password] == $password_che_gli_passi){
    //login riuscito
    }else{
    //password sbagliata!
    }
    }else{
    //errore non esiste nessun username con quel valore    

    Non penso ci sia un metodo migliore sono tutti e due validi!

  10. #10
    Codice PHP:
    $query "SELECT username, password FROM  utenti WHERE username = $_POST['username'] AND password=$_POST['password']";

    $risultato mysql_query($query$db);

    $num mysql_num_rows ($risultato);

    if(
    $num == '0'){

    se esiste allora consenti il login e ad esempio lo mandi ad una pagina specifica

    }else{

    senno il record esiste gia e dai un messaggio di errore 


    ho ripreso il codice di markus, come vedi controlli se i campi username e password esistono e poi se si fai una cosa senno un'altra , e cmq nn richiama tutti gli utenti ma controlla solo se esiste una riga che corrisponde a quei valori


    opsss ho postato alcuni secondi dopo e nn ho visto la tua risposta sorry

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.