J'essaie de configurer un système de connexion/déconnexion d'utilisateur en utilisant php et mysql. J'ai trouvé de la documentation sur le sujet ici: http://phpmaster.com/writing-custom-session-handlers/. J'essaie de le suivre (j'ai aussi tiré d'autres sources - mais c'est le principal).configurer la session php (session_set_save_handler)
Voici une partie de mon code de "my_session_handler.php":
class MySessionHandler implements SessionHandlerInterface {
private $path = session_save_path();
private $name = session_name();
private $sessionId = session_id();
function open($path, $name) {
$db = new PDO("mysql:host=localhost;dbname=itit", "root", "bonjour3");
$sql = "INSERT INTO session SET session_id =" . $db->quote($sessionId) . ", session_data = '' ON DUPLICATE KEY UPDATE session_lastaccesstime = NOW()";
$db->query($sql);
...
Ma question est, où sont les "$ path" et variables "$ name" venant de dans l'exemple que je citais ci-dessus? Je les ai déclarés comme variables privées et utilisé certaines fonctions pour faire ce que je pense doit être fait. Mais sur le site Web que je suis avec - aucune de ces variables ne sont déclarées - avec $ sessionId. Je vois que la fonction read renvoie $ data. Donc, je l'ai utilisé dans la fonction "écriture" comme ceci:
function write($sessionId, this.read($sessionId)) {
$db = new PDO("mysql:host=localhost;dbname=itit", "root", "bonjour3");
$sql = "INSERT INTO session SET session_id =" . $db->quote($sessionId) . ", session_data =" . $db->quote($data) . " ON DUPLICATE KEY UPDATE session_data =" . $db->quote($data);
$db->query($sql)
}
Est-ce que je fais cela correctement?
super ... merci pour l'explication! – ewizard
barmar ... j'ai encore une question - dois-je vraiment utiliser les fonctions du MySessionHandler? Par exemple ... ai-je besoin d'utiliser la fonction close() quand je veux fermer une session? Ou est-ce que le gestionnaire de session fait tout ça pour moi? – ewizard
Vous n'utilisez pas ces fonctions directement, elles sont utilisées par le gestionnaire de session. Lorsque l'application appelle 'session_close()', le gestionnaire de session appelle votre fonction de fermeture. – Barmar