ciao
non ho ben capito..
dici di fare così?
Codice PHP:
if (isset($_POST['ricordami']) || $_POST['ricordami'] == '1') {
setcookie("ricordami", "si", time()+3600);
echo "<pre>";
print_r($_COOCKIE);
echo "<pre>";
die();
if (!isset($_COOKIE['ricordami']) || $_COOKIE['ricordami'] <> 'si') {
require ('top.inc');
echo "<div align='center'>Se vuoi che il browser si ricordi di te devi abilitare i cookie</div>
<div align='center'>Torna alla pagina di <a href=login.php>login</a></div>";
require ('bottom.inc');
exit;
}
}
così nn va..
se abilito i cookie e faccio il login ottengo una schermata bianca e devo fare un aggiorna per vedere la pagina mentre se li disabilito ottengo una schermata bianca e nemmeno con aggiorna ottengo il messaggio di errore "devi abilitare i cookie"
ti posto anche il codice dell'area protetta prima della tua modifica nel caso volessi dargli un'occhiata...
Codice PHP:
<?php
// Abilito le sessioni
session_start();
// Verifico se l'utente avesse in precedenza attivato il "ricordami" e se quindi ha memorizzato il cookie per l'accesso;
// Se ce l'ha gli mostro la pagina altrimenti continuo con il codice;
if (isset($_COOKIE['ricordami']) || $_COOKIE['ricordami'] == 'si') {
visualizzo il corpo della pagina protetta
exit;
}
// Se il cookie nn è stato settato verifico se la sessione è già attivata e se ha il valore giusto (ad es se sto tornando indietro da un'altra pagina avendo già attivato la sessione la prima volta che
// sono passato per questa pagina dal login); se la sessione esiste già, visualizzo la pagina protetta, se no procedo con lo script.
if (isset($_SESSION['autorizzazione']) || $_SESSION['autorizzazione'] == 1) {
visualizzo il corpo della pagina protetta
}
// se la sessione non esiste vuol dire che è la prima volta che accedo a questa pagina quidi devo verificare che l'utente ci arrivi dal login con le giuste credenziali;
else {
// Creo la funzione che stabilirà se un utente ha le credenziali di accesso o meno
function check_user($usr,$pws) {
$textfile = fopen("utenti.txt", "r");
while ( $rigafile = fgets($textfile,1024) ) {
$campiriga = explode("|", $rigafile);
$file_username = $campiriga[4];
$file_password = $campiriga[5];
if (($file_username == $usr) && ($file_password == $pws)) {
return 0;
}
}
return 1;
fclose($textfile);
}
// Controllo che UserID e Password siano corretti;
// se lo sono vai setto una sessione e do alla variabile autorizzazione il valore 1 e mostro la pagina, se non sono corretti visualizzo "non sei autorizzato ad entrare in quest'area"
$password = $_POST["password"];
$username = $_POST["userid"];
if (check_user($username,$password)) {
require ('top.inc');
echo "<div align='center'>Non sei autorizzato ad entrare in quest'area</div>
<div align='center'>Torna alla pagina di <a href=login.php>login</a></div>";
require ('bottom.inc');
}
else {
$_SESSION['autorizzazione']=1;
// Verifico se l'utente ha checkkato la casella per il cookie ricordami, se si gli setto un cookie chiamato "ricordami" di valore "si"
// Se invece la casella è selezionata ma l'utente non accetta i cookie lo avverto e lo rimando al login;
if (isset($_POST['ricordami']) || $_POST['ricordami'] == '1') {
setcookie("ricordami", "si", time()+3600);
if (!isset($_COOKIE['ricordami']) || $_COOKIE['ricordami'] <> 'si') {
require ('top.inc');
echo "<div align='center'>Se vuoi che il browser si ricordi di te devi abilitare i cookie</div>
<div align='center'>Torna alla pagina di <a href=login.php>login</a></div>";
require ('bottom.inc');
exit;
}
}
visualizzo il corpo della pagina protetta
}
}
?>
grazie per l'aiuto!