Ciao ragazzi!
Ho un problema e spero che se anche posterò un pò di codice, qualcuno mi sappia dare una mano.
Sto modificando uno script per fare un'area di login con utente, password. Tutto utilizzando le sessioni.
Purtroppo non funziona! Dopo avere inserito l'utente e la password invece che aprire il file autok.php apre sessionstop.php (dando il messaggio LA sessione a cui si fa riferimento è scaduta...) il che non dovrebbe accadere e non so come sistemarlo.Qui c'è il codice:
configsess.php
Codice PHP:
<?php
$host = "localhost";
$user = "root";
$pwd = "";
$fontedati ="riservata5";
$tablename = "acl"; //nome della tabella dove saranno memorizzati gli utenti
$campousername = "username"; //nome del campo dove sara' memorizzato il nome utente nella tabella
$campopassword = "password"; //nome del campo dove sara' memorizzata la password dell'utente nella tabella
//Abilita la password criptata con md5()
$criptato = 0; //per disabilitare settare = 0
//L'utente che inserisce username o password non corretti verrà reindirizzato a questa pagina
$baddata="baddata.php";
//Se la sessione è scaduta o non è più integra, l'utente verrà reindirizzato a questa pagina
$sessionstop="sessionstop.php";
//pagina di login.Pagina nella quale è contenuta la form.Un utente non loggato che
//tanterà di accedere ad una pagina protetta verrà indirizzato qui
$login="index1.php";
//La pagina in cui verra idirizzato l'utente che si è loggato con successo al sistema
$index_page="autok.php";
//Il tempo massimo di una sessione
$sess_time_limit=600; //Attualmente è di dieci minuti
?>
autentication.php
Codice PHP:
include "configsess.php";
session_start();
if (isset($_SESSION['AUTENTICATO']) && isset($_SESSION['ip_sess']) && isset($_SESSION['sess_time']))
{
// $now=time();
$ip=getenv(REMOTE_ADDR);
if ($AUTENTICATO==false || $ip != $ip_sess || time() > $_SESSION['sess_time'] )
{
session_destroy();
header ("Location: sessionstop.php");
}
else //aggiornamento del tempo di sessione
{
$sess_time = time() + $sess_time_limit;
$_SESSION['sess_time'] = $sess_time;
}
}
else
{
session_destroy();
header ("Location: index1.php");
}
?>
autentica.php
Codice PHP:
<?php
include "configsess.php";
include "db.php";
if (ceckUser($_POST["username"],$_POST["password"], $criptato)) $AUTENTICATO=true;
if ($AUTENTICATO==true)
{
session_start();
$_SESSION[sess_user] = $_POST[username];
$_SESSION[AUTENTICATO] = $AUTENTICATO;
$_SESSION[ip_sess] = getenv(REMOTE_ADDR);
$_SESSION[sess_time] = time() + $sess_time_limit;
header ("Location: $index_page");
}
else header ("Location: $baddata");
?>
autok.php
Codice PHP:
<?php include("autentication.php");?>
<html>
<head>
<title>Untitled</title>
</head>
<body>
<h1>Benvenuto <?php echo $_SESSION['sess_user'];?></h1>
<a href=./logout.php>Chiudi la sessione</a>
</body>
</html>
sessionstop.php
Codice PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Untitled</title>
</head>
<body>
<h1>La sessione a cui si fa riferimento non è più valida.Ripetere L'autentificazione</h1>
</body>
</html>
GRAZIE!