-
problemi con i cookie
Salve a tutti.
Sono 2 giorni che sto impazzendo con i cookie vi spiego.
Ho 2 pagine la prima homepage.php e la seconda login.php, nella homepage vi ho un form per identificare gli utenti con campi login e password.
Il Form indirizza alla pagina login dove viene interogato il database se i dati inserito nel form sono corretti se si i dati vengono salvati in 2 cookie fatto questo vl'utente viene reindirizzato alla home page.
Codice PHP:
setcookie("Login",$_POST["login"]);
setcookie("Password",$_POST["password"]);
header("Location; ".$_SERVER["HTTP_REFERE"]
il fatto e che nella pagina login se tolgo l'header e metto un echo li vedo i cookie mentre con l'header nella pagina home non li vedo e non capisco il perchè.
Ho porvato pure a fare un link per disconnettere l'utente il link indirizza alla pagina loginoff dove vi è questo script:
Codice PHP:
ob_start();
setcookie("IDU","");
setcookie("SitoWeb","");
echo $_COOKIE["IDU"];
ob_end_flush();
ma il cookie non lo vedo ma se metto un isset($_COOKIE["login"]) mi dice che esiste.
Sto impazzendo vi rpego aiutatemi. :cry:
-
Prova a stampare tutto con
Codice PHP:
print_r($_COOKIE)
-
mi da questo:
Array ( [__utma] => 32141806.1128100512.1224673216.1224673216.12272026 30.2 [__utmz] => 32141806.1227202630.2.2.utmccn=(referral)|utmcsr=s 36.altervista.org|utmcct=/login.pl|utmcmd=referral [PHPSESSID] => a410e2effdf127b83b02a13d6c81623f )
-
Usa sempre il tag [CODE ], altrimenti il codice non risulta molto leggibile.
Avrai visto che quelle chiavi non ci sono.
Prova a togliere quell'header location e genera al suo posto una pagina HTML che contiene il metatag 'refresh'. Sarebbe la classica pagina "Login effettuato, attendi due secondi". In questo modo siamo sicuri che i cookie arrivino a destinazione.
-
quindi tu dici che è dovuto alla lentezza dei salvataggi dei cookie????
EDIT: ma io ho fatto anche un link per disconnettersi senza header per vedere se ce o no il cookie:
setcookie("IDU","");
setcookie("SitoWeb","");
if(isset($_COOKIE["IDU"])){
echo "cookie non esistente";
}else{
echo $_GET["IDU"];
}
e mi da pagina bianca
EDIT: niente anche come dici tu con un reindirizzamento con javascript và
il fatto strano che nella pagina login.php nel frattempo che si aspetta di essere rendirizzato ho stampato un cookie
Codice PHP:
echo $_COOKIE["Login"];
e me lo da me lo salva nel cookie ma è nella home page quando ritorno ho messo lo stesso echo ma non me lo da
-
Non è una questione di lentezza, ma il fatto che un cookie, per cominciare ad esistere, deve essere ricevuto e reinviato dal browser. Praticamente esistono solo a partire dalla pagina successiva a quella in cui li hai creati.
Il tuo ultimo esempio non può funzionare perché i imposti e tenti di leggere i cookie sulla stessa pagina.
-
sai ho risolto
ho messo nel setcookie questo
setcookie("login",$_POST["login"],"time()+3600","/")
era il slash naturalmente così comera prima il cokie esisteva solo nella pagina home invece che ne tutto il sito web.
Comunque grazie tanto.
A approposito anche con header funziona nons ercve lo script.
EDIT: ora vorrei chiederti se non è troppo ce un modo che i cookies non scadano????? ossia che scadano solo dopo aver chiuso il browser
-
Se vuoi che i cookie si cancellino dopo la chiusura del browser basta non impostare il tempo di durata.