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

    Ridefinire una variabile

    ciao a tutti
    ho ripreso un vecchio codice, il classico auth.lib.php presente nelle guide di questo sito, ho aggiornato delle piccole differenze causate dalla nuova versione i php ma ho un problema:

    mi da un notice di undefined index sulla variabile uid


    Codice PHP:
    <?php

    $_AUTH 
    = array(
        
    "TRANSICTION METHOD" => AUTH_USE_COOKIE
    );

    function 
    auth_set_option($opt_name$opt_value){
        global 
    $_AUTH;
        
        
    $_AUTH[$opt_name] = $opt_value;
    }

    function 
    auth_get_option($opt_name){
        global 
    $_AUTH;
        
        return 
    is_null($_AUTH[$opt_name])
            ? 
    NULL
            
    $_AUTH[$opt_name];
    }

    function 
    auth_clean_expired(){
        global 
    $_CONFIG;
        
        
    $result mysql_query("SELECT creation_date FROM ".$_CONFIG['table_sessioni']." WHERE uid='".auth_get_uid()."'");
        if(
    $result){
            
    $data mysql_fetch_array($result);
            if(
    $data['creation_date']){
                if(
    $data['creation_date'] + $_CONFIG['expire'] <= time()){
                    switch(
    auth_get_option("TRANSICTION METHOD")){
                        case 
    AUTH_USE_COOKIE:
                            
    setcookie('uid');
                        break;
                        case 
    AUTH_USE_LINK:
                            global 
    $_GET;
                            
    $_GET['uid'] = NULL;
                        break;
                    }
                }
            }
        }
        
        
    mysql_query("
        DELETE FROM "
    .$_CONFIG['table_sessioni']."
        WHERE creation_date + "
    .$_CONFIG['expire']." <= ".time()
        );
    }

    function 
    auth_get_uid(){
        
        
    $uid NULL;

        switch(
    auth_get_option("TRANSICTION METHOD")){
            case 
    AUTH_USE_COOKIE:
                global 
    $_COOKIE;
                
    $uid $_COOKIE['uid'];
            break;
            case 
    AUTH_USE_LINK:
                global 
    $_GET;
                
    $uid $_GET['uid'];
            break;
        }

        return 
    $uid $uid NULL;
    }

    function 
    auth_get_status(){
        global 
    $_CONFIG;

        
    auth_clean_expired();
        
    $uid auth_get_uid();
        if(
    is_null($uid))
            return array(
    100NULL);
        
        
    $result mysql_query("SELECT U.name as name, U.surname as surname, U.username as username
        FROM "
    .$_CONFIG['table_sessioni']." S,".$_CONFIG['table_utenti']." U
        WHERE S.user_id = U.id and S.uid = '"
    .$uid."'");
        
        if(
    mysql_num_rows($result) != 1)
            return array(
    100NULL);
        else{
            
    $user_data mysql_fetch_assoc($result);
            return array(
    99array_merge($user_data, array('uid' => $uid)));
        }
    }

    function 
    auth_login($uname$passw){
        global 
    $_CONFIG;

        
    $result mysql_query("
        SELECT *
        FROM "
    .$_CONFIG['table_utenti']."
        WHERE username='"
    .$uname."' and password=MD5('".$passw."')"
        
    );
        
        if(
    mysql_num_rows($result) != 1){
            return array(
    AUTH_INVALID_PARAMSNULL);
        }else{
            
    $data mysql_fetch_array($result);
            return array(
    AUTH_LOGEDD_IN$data);
        }
    }

    function 
    auth_generate_uid(){

        list(
    $usec$sec) = explode(' 'microtime());
        
    mt_srand((float) $sec + ((float) $usec 100000));
        return 
    md5(uniqid(mt_rand(), true));
    }

    function 
    auth_register_session($udata){
        global 
    $_CONFIG;
        
        
    $uid auth_generate_uid();
        
        
    mysql_query("
        INSERT INTO "
    .$_CONFIG['table_sessioni']."
        (uid, user_id, creation_date)
        VALUES
        ('"
    .$uid."', '".$udata['id']."', ".time().")
        "
        
    );
        if(!
    mysql_insert_id()){
            return array(
    AUTH_LOGEDD_IN$uid);
        }else{
            return array(
    AUTH_FAILEDNULL);
        }
    }

    function 
    auth_logout(){
        global 
    $_CONFIG;

        
    $uid auth_get_uid();
        
        if(
    is_null($uid)){
            return 
    false;
        }else{
            
    mysql_query("
            DELETE FROM "
    .$_CONFIG['table_sessioni']."
            WHERE uid = '"
    .$uid."'"
            
    );
            return 
    true;
        }
    }
    ?>
    il notice è relativo alla riga 55:
    Codice PHP:
    $uid $_COOKIE['uid']; 
    è possibile che prima di questa riga io debba fare un
    Codice PHP:
    unset($uid
    (è scritto bene questo unset?), può dipendere da questo il notice?
    strano perchè esce solo alla prima connessione a localhost/gestioneutenti/home (che richiama auth.lib), poi dopo il primo login andato a buon fine il notice non esce più. anche cancellando la sessione e rientrando nella pagina incriminata non c'è più alcun notice. mah..
    grazie

  2. #2

  3. #3
    grazie

  4. #4
    ho risolto il probela con l'operatore ternario.

    adesso però ho lo stesso problema con questa variabile:

    Codice PHP:
    $func $_CONFIG['check_table'][$field_name]; 
    come faccio a riscriverla con isset? cioè qual'è il metodo? issett(variabile, valore???...
    grazie ancora
    matteo

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.