Visualizzazione risultati 1 fino 3 di 3

Discussione: sistemare funzione login [era Aiutatemi!!!!]

  1. #1
    Guest

    Smile sistemare funzione login [era Aiutatemi!!!!]

    Ciao ha tutti ho creato una funzione php per il login che restituisce valori diversi a seconda del fatto che gli utenti siano già nel db o meno...stranamente non funziona...mi dareste una mano a trovar l'errore, please?

    Codice PHP:
    //----------------------------------connessione al database
    function login($email,$pass){
    mysql_connect("localhost", "mysite");
    mysql_select_db("my_mysite");
    //-----------------------------------------Confronto email
    $query = "SELECT email FROM Dati";
    $result = mysql_query($query);
    while (
    $row = mysql_fetch_array($result))
    {
    if(
    $email==$row['email']){
    $email=true;
    break;}
    if(!
    $row['email']){
    $email=false;}}
    //------------------------------------------Confronto password
    $query1 = "SELECT password FROM Dati";
    $result1 = mysql_query($query1);
    while (
    $row1 = mysql_fetch_array($result1))
    {
    if(
    $pass==$row1['password']){
    $pass=true;
    break;}
    if(!
    $row1['password']){
    $pass=false;}
    }
    //------------------------------------------Restituzione valore
    if($email&&$pass){return 'etpt';}
    if(
    $email&&!$pass){return 'etpf';}
    if(!
    $email&&$pass){return 'efpt';}
    if(!
    $email&&!$pass){return 'efpf';}
    }
    La funzione restituisce sempre "etpt"...grazie mille in anticipo per ogni delucidazione!
    Ultima modifica di javascripter : 14-04-2015 alle ore 21.20.50

  2. #2
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Perché fai due query separate per email e password?
    Perché usi fetch_array in un while? email non è una chiave che ti garantisce l'univocità del record?
    Devi fare una query più specifica.

    Io rivedrei il modo in cui hai scritto le condizioni, così sono troppo confuse.

    Codice PHP:
    $sql = 'SELECT email, password FROM dati WHERE email = \'' . $email . '\' AND passwod = \'' . $passw . '\'';
    $query = mysql_query($sql);

    return
    mysql_num_rows($query);
    Ultima modifica di javascripter : 14-04-2015 alle ore 21.27.27

  3. #3
    Guest

    Predefinito

    Grazie mille, ora funziona!
    Però non riesco a capire dov'è l'errore nel codice...
    Certo è complicato e più intricato del dovuto ma come fa a eseguire
    Codice PHP:
    if($pass==$row1['password']){
    $pass=true;
    break;}
    anche quando non c'è $pass nel database?

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •