1) leggo il mio cookie con $c = $_COOKIE['roby'];
2) viene eseguito un grande script di cui non so cosa fa, ma certamente non può sapere che ho in precedenza creato un cookie chiamato 'roby'
3) rileggo il mio cookie con $c = $_COOKIE['roby'];
Ebbene accade che all'inizio (punto 1) il cookie c'è, alla fine (3) no!
Cosa può accadere? Una volta letto il cookie dall'array $_COOKIE questo viene rimosso? Può essere un discorso di sessioni? Magari lo script (2) altera qualcosa...
Proprio non capisco. $_COOKIE dovrebbe essere di tipo superglobal e visibile ovunque... perchè perde il suo valore?!
PS: la cosa curiosa è che lo stesso script provato in locale funziona benissimo, caricato su AV no...
Ultima modifica di robertobizzarri : 13-12-2010 alle ore 18.11.51Motivo: aggiunta
È un superglobale, ma non è protetto e quindi essere modificato liberamente, anche sostituito completamente. Proverei a farmi stampare il contenuto di $_COOKIE con una print_r.
«È una mia peculiarità distorcere la verità e inventarne di nuove.»
«I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»
E' ciò che ho fatto.
Prima c'è, alla fine non più. Ci sono altri cookies ma non il mio.
Ok, so che può essere riscritto o cancellato, ma lo script incriminato non può sapere il NOME del mio cookie quindi come può eliminarlo? Questo non capisco.
Forse, ho capito il mio problema anche se non mi spiego il motivo.
All'inizio dello script, leggo il cookie con $_COOKIE, modifico e lo risalvo con la setcookie(). Per utilizzare la modifica in seguito aggiorno anche $_COOKIE assegnandoli il nuovo valore $_COOKIE['...']=123;
Ebbene questa mia riassegnazione non viene vista dall'interno di una funzione! Al contrario se non tocco niente, il cookie originale prelevato dal client viene visto!