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

    Sequenza esecuzione __construct

    Sto facendo delle prove con la programmazione ad oggetti e non riesco a capire il motivo di questo (per me) strano compotamento:
    L'idea è di scrivere una classe che al momento dell'instaziazione generi un cookie con delle informazioni da usare successivamente. Qualcosa del genere:
    Codice PHP:
    class user_session {
        public function 
    __construct($cookie_name) {
            if (!isset(
    $_COOKIE[$cookie_name])) {
                
    $_SESSION_VALUES $this->session_vars (ABSPATH$cookie_name);
            }
        } 
    Non riporto il resto, perché direi non utile a questa discussione. Preciso solo che session_vars crea un array con variabili utili e che ABSPATH è una define con la directory assoluta di dove è eseguito il programma.
    Codice PHP:
        public function session_vars ($startingDir$cookie_name) {
             if (
    php_uname("s") == "Linux") {
                 
    $_SESSION_VALUES['_SYSTEM'] = "Linux"; }
                 else 
    $_SESSION_VALUES['_SYSTEM'] = "Windows";
    ....
    ....
            
    $this->set_cookie ($cookie_name$_SESSION_VALUES); 
    Insomma, ho provato il tutto con un programma del tipo:
    Codice PHP:
    echo "Istanzia [i]user_session ( " COOKIE_NAME ")[/i]
    "
    ;
     
    $user = new user_session(COOKIE_NAME);
     echo 
    "Leggo il [i]cookie[/i] " COOKIE_NAME "
    "
    ;
     
    $COOKIE_STRUCTURE $user->get_cookie (COOKIE_NAME);
     if (isset(
    $_COOKIE[COOKIE_NAME]))
          {echo 
    "Cookie settato
    "
    ;
         
    show_array ($COOKIE_STRUCTURE);
         
    $user->remove_cookie(COOKIE_NAME);
          echo 
    "cookie(" COOKIE_NAME ") rimosso
    "
    ;}
         else echo 
    "Cookie [b]NON[/b] esiste!
    "

    Come mai, alla prima esecuzione ottengo il seguente:
    Istanzia user_session (_prova_cookie)
    Leggo il cookie _prova_cookie
    Cookie NON esiste!
    mentre a una immediata riesecuzione, ottengo qualcosa del tipo:
    Istanzia user_session (_prova_cookie)
    Leggo il cookie _prova_cookie
    Cookie settato
    _SYSTEM -> Windows
    _CSS_DIR -> /css
    _JS_DIR -> /js
    _USERNAME ->
    _PASSWORD ->
    _USER -> 0
    ....
    ....
    _COOKIE_NAME -> _prova_cookie
    cookie(_prova_cookie) rimosso
    Vale a dire, sembra funzionare solo a una seconda esecuzione!
    Qualcuno sa spiegarmi come mai?
    Grazie.

  2. #2
    E' possibile accedere ad un cookie creato solamente al successivo caricamento di una pagina.
    Da manuale:

    Once the cookies have been set, they can be accessed on the next page load with the $_COOKIE or $HTTP_COOKIE_VARS arrays.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Ah ecco: è vero! Me ne ero completamente dimenticato.
    Grazie.

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.