Mi rivolgo qui, per disperazione!![]()
Ho una procedura che gestisce un complesso cookie, formato da un array, che in qualche caso contiene altri arrays. Niente di straordinario (pensavo io), ma invece sono giorni che ci perdo gli occhi...
Il cookie contiene una serie di variabili che mi servono nelle varie pagine. Qualcosa del tipo:
Il tutto alla fine è serialized e, per buona misura base64_encode/ed!Codice PHP:$_SESSION_VALUES['_INCLUDE_DIR'] = $absolute . "include" . $slash; // directory con le "include"
$_SESSION_VALUES['_CSS_DIR'] = $absolute . "css" . $slash; // directory con le "css"
$_SESSION_VALUES['_JS_DIR'] = $absolute . "js" . $slash; // directory con i "JavaScript"
$_SESSION_VALUES['_WRITE_DIR'] = $this->vardir; // directory su cui scrivere
$_SESSION_VALUES['_USERNAME'] = ""; // spazio per il nome utente.
$_SESSION_VALUES['_PASSWORD'] = ""; // spazio per la password (encoded).
....
Quando e se mi serve qualche altro valore, non faccio che aggiungerlo all'originaro array, per esempio così:Codice PHP:setcookie($cookie_name, base64_encode(serialize($_SESSION_VALUES)), time()+3600, '/')
e quindi risalvo il cookie per la pagina successiva:Codice PHP:if (! $_SESSION_VALUES['_PAGE_RECORD'] = get_record (PAGE_TABLE, $_POST['page'])) die ('non ho letto niente');
Inutile dire che get_record è una semplice funzione che seleziona la tabella e ritorna l'array del record di cui si definisce l'ID.Codice PHP:$nick->set_cookie (COOKIE_NAME, $_SESSION_VALUES);
Iniutile dire che set_cookie della classe $nick funziona per tutto il resto tranne (pare) che per quello che adesso finalmente dirò!![]()
Quando salvo l'array del record di PAGE_TABLE in $_SESSION_VALUES['_PAGE_RECORD'], lo vedo a posto non appena salvato. Vale a dire, nel momento in cui imposto la variabile, per poi salvare il cookie. Ecco il mio debug efefttuato subito dopo aver salvato il cookie: naturalmente questo è il contenuto dell'array di variabili $_SESSION_VALUES, non del cookie, che si vedrà solo alla pagina successiva.
Come si vede anche $_SESSION_VALUES['_GAME_RECORD'] (trattato nel medesimo modo) contiene un Array di record, letto dalla tabella GAME_TABLE.Codice PHP:_COOKIE_NAME -> _nuova_interattiva
_PAGE_RECORD -> Array
_COLONNA -> 0
_GAME_RECORD -> Array
Ecco quindi come si presenta il cookie alla pagina successiva:
_GAME_RECORD c'è, ma _PAGE_RECORD (trattato con analoghe routines) non compare mai! En passant anche il campo _COLONNA è stato mangiato e anche questo non mi sembra normale.Codice PHP:_COOKIE_NAME -> _nuova_interattiva
_PAGE_RECORD ->
_COLONNA ->
_GAME_RECORD -> Array
Capisco che sia una domanda assurda, ma qualcuno ha una qualche idea di cosa diavolo sia successo?
Grazie in anticipo.

Rispondi quotando
