certo, devi usare i cookies.
quando un utente fa il login, lanci una sessione e scrivi un cookie con l'username dell'utente.
quando ritorna, se c'è il cookie viene lanciata la sessione senza dover eseguire il login.
questo molto semplicemente. In realtà il problema è un po' delicato, in quanto il cookie è un semplice file di testo, quindi bisogna fare in modo che non sia manipolabile, altrimenti è sufficiente che io scriva un username valido e potrò accedere a nome di quell'utente.
per ovviare a questo problema il cookie deve contenere l'username e la password CRIPTATA.
a questo punto quando viene letto il cookie verrà cercata una corrispondenza username password.
Ti invio un esempio fatto da me, ma certamente si può trovare di meglio:
Codice PHP:
// Nel login
// se l'username e la password immessi sono corretti
{
$valore = $username . ":" . md5($password);
setcookie("chiave_cookie", $valore, time() + 3456000);
header("Location: index.php");
}
//funzione che controlla l'autenticazione
function Grant()
{
session_start();
if ($_SESSION['grant'] != "TRUE")
{
if (!isset($_COOKIE['chiave_cookie']))
{
header("Location: login.php");
exit;
}
$valori = explode(":", $_COOKIE['chiave_cookie']);
$sql = "SELECT password FROM users WHERE username='$valori[0]'";
include_once "./lib/function_db.php";
$res = mysql_query($sql, $conn);
$row = mysql_fetch_array($res);
if ($valori[1] != md5($row['password']))
{
header("Location: login.php");
exit;
}
else
{
$_SESSION['grant'] = "TRUE";
}
}
}