Visualizzazione dei risultati da 1 a 7 su 7

Discussione: mysql_result

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    82

    mysql_result

    Ciao,

    mi stò studiando la scrittura di una sequenza d login e stò visionando vari codici x vedere la migliore soluzione...

    ora, in questo codice nn capisco la funzionalità delle ultime 6 righe...

    ecco il codice:

    Codice PHP:
    function user_login() {
        
    //in caso user_name e password siano lasciati vuoti come campi ritorna un mex di avviso
        
    if (!$_POST['user_name'] || !$_POST['password']) {
            
    $feedback 'ERROR - Missing username or password';
            return 
    $feedback;
        }
        else {
            
    $user_name strtolower($_POST['user_name']);
            
    $password strtolower($_POST['password']);
            
    $crypt_pwd md5(&password);
            
    $query "SELECT user_name, is_confirmed FROM user WHERE user_name='$user_name' AND password='£crypt_pwd'";
            
    $result mysql_query($query);
            if (!
    result || mysql_num_rows($result) < 1) {
                
    $feedback 'ERROR - User not found or password incorrect';
                return 
    $feedback;
            }
            else {
                if (
    mysql_result($result0'is_confirmed') == '1') {
                    
    //funzione user_set_tokens definita successivamente
                    
    user_set_tokens($username);
                    return 
    1;
                }
                else {
                    
    $feedback 'ERROR - you may not have confirmed your account yet';
                    return 
    $feedback;
                }
            }
        }

    ovvero, con questa righa:

    Codice PHP:
    else {
                if (
    mysql_result($result0'is_confirmed') == '1') { 
    seleziono il contenuto della colonna "is_confirmed" alla riga 0 dopo aver selezionato (SELECT) i risultati con il recedente SELECT e fin qui oki...

    quel che non capisco è proprio l'utilità, ovvero, alla riga 0 della tabella, cosa trovo? se l'utente è alla riga 25, cosa stò cercando nella riga 0???
    Da quel che ho dedotto sarebbe che, essendo l'ultimo utente registrato, questo verrà messo alla riga 0 (auto_increment) e finchè l'admin nn lo accetta il suo stato resto 0 (ovvero nn accettato) e se cerca d'accedere gli viene restituito il mex:"ERROR - you may not have confirmed your account yet"

    Giusto?

    Grazie Mille

    [TrGh]
    [TrGh]

  2. #2
    Utente di HTML.it L'avatar di RokStar
    Registrato dal
    Dec 2001
    Messaggi
    937
    Dubito che tu possa mai avere 25 utenti con lo stesso nome_utente e password.. la query seleziona gli utenti in cui username e password coincidono.

  3. #3
    Utente di HTML.it L'avatar di dalang
    Registrato dal
    May 2003
    Messaggi
    252
    La riga 0 non si riferisce al database, ma al result recordset, cioè all'elenco dei record che ha trovato con la query.

    visto che lo username deve essere unico, ci sarà un solo risultato (come dice RokStar), e quindi l'unica riga su cui dovrai lavorare è la 0.

    Spero di essere stato chiaro.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    82


    E' veroooooo


    Thx mille

    [TrGh]
    [TrGh]

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    82
    ora è la funzione user_set_tokens che mi dà qualche problema...

    ecco il codice:

    Codice PHP:
    function user_set_tokens($user_name_in) {
        global 
    $hash_padding;
        
    //questo if si potrebbe anche saltare?
        
    if (!user_name_in) {
            
    $feedback 'ERROR - No username';
            return 
    false;
        }
        
    //non ci andrebbe un else se tengo l'if??
        
    $user_name strtolower($user_name_in);
        
    $id_hash md5($uder_name.$hash_padding);
        
    setcookie('user_name'$user_name, (time()+2592000), '/'''0);
        
    setcookie('id_hash', (time()2592000), '/'''0);
    }
    ?> 
    il dubbio è:

    l'if nonm è superfluo? dopotutto ho già controllato nella funzione sopra (user_login) che il campo non è vuoto, inoltre, in caso l'if lo tenga, non ci andrebbe (come ho specificato nel commento) un else nella seconda parte della funzione?

    Inoltre, il fatto che l'if ritorni un false, nella funzione user_login fà ritornare un false e poi un 1...

    codice:

    Codice PHP:
    if (mysql_result($result0'is_confirmed') == '1') {
                    
    //funzione user_set_tokens definita successivamente
                    
    user_set_tokens($username);
                    return 
    1;
                } 
    Grazie ancora

    [TrGh]
    [TrGh]

  6. #6
    Utente di HTML.it L'avatar di dalang
    Registrato dal
    May 2003
    Messaggi
    252
    Ci sono un po' di cose che non mi tornano...

    1)
    nella user_login hai
    $user_name = strtolower($_POST['user_name']);
    e poi
    user_set_tokens($username);

    ma $username da dove lo prende? nello script non è mai settato...

    2)
    in user_set_tokens($user_name_in) hai
    if (!user_name_in) che è molto diverso da if (!$user_name_in)

    e dovrebbe darti un PARSE ERROR!!!


    comunque l'else non serve, se entra nell'if, fa quello che deve fare e poi con il return $feedback; esce dalla funzione.
    se non entra nell'if fa solo quello che viene dopo (quindi l'else è inutile)

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    82
    [supersaibal]Originariamente inviato da dalang
    1)
    nella user_login hai
    $user_name = strtolower($_POST['user_name']);
    e poi
    user_set_tokens($username);

    ma $username da dove lo prende? nello script non è mai settato...
    [/supersaibal]
    sarà inviato da un form, ora stò settando le funzioni che successivamente verranno richiamate nella pagina d login.

    [supersaibal]Originariamente inviato da dalang
    2)
    in user_set_tokens($user_name_in) hai
    if (!user_name_in) che è molto diverso da if (!$user_name_in)
    [/supersaibal]
    si, ho dimenticato un $ thx

    [TrGh]
    [TrGh]

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.