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

    [Lungo] Problema con sessioni

    Ciao a tutti

    lo so che l'argomento è trito e ritrito, ma veramente non so più cosa pensare.
    La mia situazione è questa:

    ho una pagina wishlist.php che contiene una form, method=post, action="send_wish_list.php".

    lo script send_wish_list.php che:
    1) assegna le variabili $_POST provenienti dal form a delle corrispondenti variabili $_SESSION
    2) assegna una variabile $_SESSION["send_email"]="1";
    3) esegue un redirect di nuovo a wishlist.php attraverso una funzione che ho fatto che esegue questi quattro comandi:

    ob_implicit_flush(0);
    ob_start();
    header("Location: ".$target);
    ob_end_flush();

    quando rientro in wishlist.php, se $_SESSION["send_email"]=="1" dovrei comporre una mail
    con le variabili $_SESSION settate prima, che però misteriosamente sono tutte settate a "",
    e non riesco a capire perchè.

    Faccio notare che nel send_wish_list.php mi salvo su un log sia le $_POST che le $_SESSION,
    e sono tutte valorizzate.
    In entrambi i file la sessione viene avviata facendo il require_once di un altro script che
    contiene il session_start(), è un metodo che ho utilizzato ancora e che mi è sempre
    funzionato.
    Inoltre in entrambe le pagine mi salvo su un log i valori di session_id(), e sono sempre uguali.

    La prova la sto facendo su un hosting seeweb che usa PHP 4.3.10 e sul quale ospito anche
    il mio sito aziendale, quindi non penso che ci siano problemi di configurazione.

    Veramente non so più cosa pensare, qualcuno ha qualche idea ?

    Grazie in anticipo

    Giuseppe Garzotto

  2. #2
    Mi rispondo da solo, e lo condivido sperando che possa essere utile, perchè alla fine ho scoperto la causa, ma non riesco proprio a capire perchè.

    Allora, io in uno script ho la seguente porzione di codice:

    Codice PHP:
    /* Data variables */
    $sender_name="";
    $sender_email="";
    $recipient_email="";
    $message_text=""
    In seguito faccio:

    Codice PHP:
        $sender_name=$_SESSION["sender_name"];
        
    $sender_email=$_SESSION["sender_email"];
        
    $recipient_email=$_SESSION["recipient_email"];
        
    $message_text=str_replace("\'","''",$_SESSION["message_text"]); 
    Ora, lo script in questione, come ho già detto, è una pagina che richiama se stessa, la
    seconda parte è dentro a un IF che viene eseguito solo se viene fatto submit.
    L'inizializzazione delle variabili iniziali provoca
    la cancellazione delle componenti dell'array $_SESSION.

    Se le variabili io le chiamo in un altro modo, anche solo con un aaa_ davanti, posso richiamare
    la pagina quante volte voglio e $_SESSION è sempre valorizzato.

    Un simile comportamento non mi è mai capitato, al di là del problema, che ormai ho risolto,
    qualcuno ha qualche idea della causa di tutto ciò ?

    Grazie

    Giuseppe Garzotto

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.