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
--------------------
redirect.php - controlla che le credenziali di accesso siano corrette e rimanda alla pagina protetta
-------------------------------------
Guild.php è l'area protetta
----------------------------
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..
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
--------------------
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"><br />
USERID: </span><input name="userid" type="text" size="20">
<span class="Stile1">
PASSWORD:</span><input type="password" name="password" size="20"><br>
<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
-------------------------------------
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><br>
<div align='center'>Torna alla pagina di <a href=login.php>login</a></div>";
require ('bottom.inc');
}
else {
$_SESSION['autorizzazione']=1;
header("Location: http://miosito.altervista.org/Php/Guild/sessioni/Guild.php");
};
?>
Guild.php è l'area protetta
----------------------------
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><br>
<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..