Salve a tutti, ho trovato una piccola anomalia con la funzione "session_set_cookie_params" di PHP mentre stavo programmando. Praticamente se io imposto il cookie PHPSESSID con un lifetime ad esempio 3600 con questa funzione funziona (che gioco di parole) e su Mozilla FireFox non ci sono problemi invece con MSIE come al solito si!
Facciamo alcuni esempi.
Prendete questo file e copiatelo sul vostro server, chiamatelo come volete:
codice:
<?php
// prima.php
session_start(); // inizio la sessione
session_set_cookie_params(3600); // imposto un lifetime piu lungo
session_register("var"); // registro la var
$_SESSION["var"]="variabile"; // setto la var
print($_SESSION["var"]); // la stampo
print("
");
print($_COOKIE["PHPSESSID"]); // stampa l'id di sessione
print("
");
print_r(session_get_cookie_params()); // ottengo le conf. del cookie PHPSESSID
?>
Ora chiudete il browser (è necessario), copiatevi quest'altro file e richiamatelo
codice:
<?php
// seconda.php
session_start(); // inizio la sessione
print($_COOKIE["PHPSESSID"]); // stampo l'id sessione
print("
");
print($_SESSION["var"]); // stampo la var
?>
Se usate Mozilla richiamando la prima pagina, chiudendo il browser e riaprendo la seconda pagina si puo leggere l'id di sessione e il valore della variabile di sessione. Facendo lo stesso processo con MSIE nella seconda pagina non si vede niente almeno a me cosi capita!
Ho risolto cosi:
codice:
<?php
// prima.php
session_start();
setcookie("PHPSESSID", session_id(), time()+3600); // setto il cookie manualmente
session_register("var");
$_SESSION["var"]="variabile";
print($_SESSION["var"]);
print("
");
print($_COOKIE["PHPSESSID"]);
print("
");
print_r(session_get_cookie_params());
?>
Poi
codice:
<?php
// seconda.php
session_start();
print($_COOKIE["PHPSESSID"]);
print("
");
print($_SESSION["var"]);
?>
Sarà quache mancato supporto di MSIE per quanto riguarda il protocollo HTTP?
Nel senso che la sintassi usata per settare quel cookie non è valida per MSIE? :master:
Va bene il codice creato da me in sostituzione? Perche io non so come lavora la funzioni session!