Dunque, il mio utente si logga ed entra.
Ora lavoro nel seguente modo:
Salvo alcune cose nelle session in questo modo, onde evitare di dover fare il login qualora dovesse eseguire un'operazione qualsiasi:
Codice PHP:
session_start();
$sid = session_id();
$_SESSION['id'] = $user_id;
$_SESSION['login'] = 1;
$_SESSION['type_account'] = 1;
$time = time();
if ($check_cookie) {
setcookie("id","$partner_id",time()+2592000);
}
Inoltre, le aggiungo al db con una query
Codice PHP:
$query = "INSERT INTO `session` (sid, uid, expires, type) VALUES ('$sid', '$user_id', $time, '1')";
Arrivato a questo punto, in cima ad ogni pagina aggiungo questo codice:
Codice PHP:
<?php
session_start();
// Dichiaro variabili
$time = time();
$cookie = $_COOKIE['id'];
$user_id = $_SESSION['id'];
$login = $_SESSION['login'];
$type_account = $_SESSION['type_account'];
if (isSet($cookie)) { // C'è il cookie? Sì.
if ($login == 1) { // Ho appena fatto il login? Sì.
$query = "UPDATE `session` SET expires = '$time' WHERE uid = '$cookie'";
$db->query($query);
$uid = $user_id;
} else { // No, è un cookie vecchio visto che la scadenza è 30 giorni.
$sid = session_id();
$uid = $cookie;
$query = "INSERT INTO `session` (sid, uid, expires) VALUES ('$sid', '$uid', $time)";
$db->query($query);
}
} else { // Niente cookie.
if ($login == 1) { // Ho, ugualmente, appena fatto il login? Sì.
$query = "UPDATE `session` SET expires = '$time' WHERE uid = '$user_id'";
$db->query($query);
$uid = $user_id;
}
}
$query = "DELETE FROM `session` WHERE expires < $time AND uid = '$uid'";
$db->query($query);
?>
Per poi prelevarle nella pagina così:
Codice PHP:
<?php if ($login != 1) {?>
NO LOGIN
<?php } else { ?>
LOGIN <?php } ?>
Io ho pensato in questo modo. Che ne dici?