Ciao a tutti
vi anticipo che sono un novellino della programmazione php e che quindi la mia domanda potrà sembrarvi sciocca..
Sto creando una semplice area ad accesso riservato con le sessioni, il problema è che se nel browser disabilito i cookie l'applicazione non mi consente più di entrare..
io sapevo che lavorando con le sessioni non c'è questa ncessità..
vi posto il codice certo del fatto che capiate il mio errore..
login.php - riceve le credenziali di accesso e le manda a redirect.php
--------------------
Codice PHP:
<?php
<table width="500" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#CCCCCC">
<tr>
<td>
<form method="post" action="redirect.php">
<div align="center"><span class="Stile1">
USERID: </span><input name="userid" type="text" size="20">
<span class="Stile1">
PASSWORD:</span><input type="password" name="password" size="20">
<input type="submit" value="Login" name="submit" />
</div>
</form></td>
</tr> </table>
require ('bottom.inc');
?>
redirect.php - controlla che le credenziali di accesso siano corrette e rimanda alla pagina protetta
-------------------------------------
Codice PHP:
<?php
// Abilito le sessioni
session_start();
// Creo la funzione per fare il check dello USERID e della PASSWORD
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 alla Pagina Protetta, se UserID o Password non sono corretti visualizza "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;
header("Location: [url]http://miosito.altervista.org/Php/Guild/sessioni/Guild.php[/url]");
};
?>
Guild.php è l'area protetta
----------------------------
Codice PHP:
<?php
// Abilito le sessioni
session_start();
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Pragma: no-cache");
if (isset($_SESSION['autorizzazione']) || $_SESSION['autorizzazione'] == 1){
require ('top.inc');
CORPO DELLA PAGINA PROTETTA
require ('bottom.inc');
}
else {
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');
}
?>
il tutto funziona bene ma solo se i cookie sono abilitati
se li disabilito e faccio il login, ricevo il messaggio di errore "Non sei autorizzato ad entrare in quest'area" previsto nel caso la sessione fosse inesistente o sbagliata..
Avete qualche idea? immagino sia una mia cavolata ma non capisco dove sbaglio..