Ciao a tutti,
ho personalizzato uno script php che permette il login dell'utente nel mio sito web.
La pagina di login accetta user e password e richiama il seguente script che riconosce se il login è andato a buon fine o no:
se tutto è andato a buon fine, l'utente verrà rendirizzato nella sua homepage ("index.php").codice:<?phpinclude_once("include/config.php"); include_once("include/auth.lib.php"); /*Dopo aver controllato che lo status dell'utente non corrisponda ad AUTH_LOGGED, e dopo aver controllato che entrambi i dati passati tramite POST siano corretti, richiamiamo le funzioni auth_login() ed auth_register_session() per eseguire il login e registrare una nuova sezione.*/ list($status, $user) = auth_get_status(); if($status == AUTH_NOT_LOGGED){ $uname = strtolower(trim($_POST['uname'])); $passw = strtolower(trim($_POST['passw'])); if($uname == "" or $passw == ""){ $status = AUTH_INVALID_PARAMS; }else{ list($status, $user) = auth_login($uname, $passw); if(!is_null($user)){ list($status, $uid) = auth_register_session($user); } } } /*Lo switch controlla il valore della variabile $status (che rappresenta lo stato in cui lo script è terminato), e visualizza un messaggio all'utente.*/ switch($status){ case AUTH_LOGGED: header("Refresh: 5;URL=../index.php"); echo '<div align="center">Sei gia connesso ... attendi il reindirizzamento</div>'; break; case AUTH_INVALID_PARAMS: header("Refresh: 5;URL=../index.php"); echo '<div align="center">Hai inserito dati non corretti ... attendi il reindirizzamento</div>'; break; case AUTH_LOGEDD_IN: switch(auth_get_option("TRANSICTION METHOD")){ case AUTH_USE_LINK: header("Refresh: 5;URL=../index.php?uid=".$uid); break; case AUTH_USE_COOKIE: header("Refresh: 5;URL=../index.php"); setcookie('uid', $uid, time()+3600, "/"); break; case AUTH_USE_SESSION: header("Refresh: 5;URL=../index.php"); $_SESSION['uid'] = $uid; break; } echo '<div align="center">Ciao '.$user['name'].' ... attendi il reindirizzamento</div>'; break; case AUTH_FAILED: header("Refresh: 5;URL=../index.php"); echo '<div align="center">Fallimento durante il tentativo di connessione ... attendi il reindirizzamento</div>'; break; } ?>
Il problema è che una volta entrato nella "index.php", se faccio riaggiorno la pagina, si scollega automaticamente rimandandomi alla pagina di login.
Inoltre, se in quest'ultima reinserisco le credenziali, lo script non riesce a effettuare il login e vengo sempre rimandato alla pagina di login.
A questo punto, per potermi loggare nuovamente, devo cancellare manualmente i cookies del mio browser.
Penso sia un problema legato ai COOKIES ma non capisco visto che nel codice precedentemente postato ho inserito un cookie permanente con l'istruzione:
Qualcuno saprebbe dirmi come mai si verificano questi problemi?codice:setcookie('uid', $uid, time()+3600, "/");

Rispondi quotando
