Newsgroup: it.comp.www.php
Titolo: Scrivere e Leggere cookie

Ho creato un sito con una pagina in html/php che richiama le variabili
che costituiscono il contenuto. Tutto funziona bene.
Adesso volevo trasformare il sito in "sito multilingua" e volevo
vreare un cookie (come consigliatomi su questo ng tempo fa) che
immagazzinasse la variabile della lingua.
In alto ho un menu con dei link del genere:
pagina_struttura.php?categoria=aff&pagina=_p3
che mi compongono il nome della variabile cho poi vado a leggere per
inserire il contenuto corretto.
Vorrei quindi gestire la variabile diciamo $lingua tramite cookie (o
soluzione più indicata). Vorrei mettere nel footer un link del tipo
"cambia lingua" per fare in modo di vedere in inglese la pagina in cui
mi trovo...
Si può fare?
Ho guardato (
google.it
) alcune guide sui cookie, ma non ho trovato il
modo di applicarlo al mio caso.
Ho avuto anche difficoltà a rileggere il cookie (forse perchè uso una
pagina sola?)
-- 
La rovina del mondo sarà l'indifferenza...
...ma chi se ne fregaaa!

 Si può fare?
Non ci vedo molti problemi. Al posto di lingua dovresti utilizzare
$_COOKIE['lingua'] e tieni conto del fatto che se vuoi accedere ad un
cookie appena creato devi impostare tale variabile manualmente perche'
i cookie sono accessibili solo al successivo "refresh" della pagina (o
richiesta HTTP).
-- 
I am what I am, I do what I can
L'uomo, conscio di sbagliare, persevera.

richiesta HTTP).
Nell'index.php ho messo 2 link in questo modo
pagina_struttura.php?categoria=aff&pagina=_p1&lang=ita
pagina_struttura.php?categoria=aff&pagina=_p1&lang=eng
in pagina_struttura ho inserito questo:
 setcookie("cookie_lang",$lang, time()+1200);
 $lingua = $_COOKIE['cookie_lang'];
Quando provo il sito e sono nell'index vedo i due link e ne clicco
uno; vado in pagina_struttura.php con url "corretto" cioè anche con la
variabile $lang. Il cookie si comporta esattamente come dicevi tu:
all'inizio è stato solo memorizzato ma non utilizzato; se faccio un
refresh il cookie viene anche letto e la pagina si visualizza
correttamente. Potrei far puntare l'index coi link ad una pagina
intermedia che poi mi fa un redirect alla pagina_struttura.php.
PERO' i link del menu in alto non funzionano... Credevo che il cookie
fosse "un'entità sovrannaturale" in grado di tenere impostata una
variabile senza che essa dovesse essere richiamata.... invece mi sa
tanto che dovrò mettere i links nel menu non con il formato che ho
ora:
pagina_struttura.php?categoria=aff&pagina=_p3
ma con un formato comprendente la lingua:
pagina_struttura.php?categoria=aff&pagina=_p3&lang=$lingua
Giusto?


  $lingua = $_COOKIE['cookie_lang'];
Utilizza $_GET['lang'] al posto di $lang (causa register_globals).
Poi, come da manuale, la variabile $_COOKIE['cookie_lang'] sara'
accessibile alla successiva visione della pagina (o delle pagine), per
utilizzarla subito devi scrivere:
if (isset ($_GET['lang'])) {
	setcookie ("cookie_lang", $_GET['lang'], time () + 1200);
	$_COOKIE['cookie_lang'] = $_GET['lang'];
} else {
	// imposto una lingua di default, oppure potrei fare il parsing
	// di $_SERVER['HTTP_ACCEPT_LANGUAGE'] ed impostare la lingua 
	// dell'utente.
	setcookie ("cookie_lang", 'ita', time () + 1200);
	$_COOKIE['cookie_lang'] = 'ita';
}
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C


 
ma in definitiva le sessioni non usano anche un cookie (appunto cookie 
di sessione)?

 cookie di sessione)?
Non necessariamente e comunque i livelli di protezione dei browser
discriminano i cookie di sessione da quelli persistenti.


 discriminano i cookie di sessione da quelli persistenti.
il  non necessariamente è riferito a url-rewriting?
a lui cmq potrebbero andare bene anche i cookie di sessione, ovvero 
senza expire. Dico questo solo perchè non sempre si hanno le sessioni 
abilitate, e se lo fossero sono preferibili anche secondo me.
saluti.

 abilitate, e se lo fossero sono preferibili anche secondo me.
Penso che sarebbe alquanto frustrante avere un hosting senza sessioni.
