Pour la modification directe des informations de session d'un autre joueur, j'avais posté un bout de code ici
Pour éviter les multi-sessions, j'ai un truc de ce genre à la connexion
Pour éviter les multi-sessions, j'ai un truc de ce genre à la connexion
Code PHP :
<?php
//Sauvegarde du session_id en cours
$oldSession=session_id();
//Fermeture de la session actuelle
session_write_close();
// Le session ID étant enregistré en BDD à chaque connexion
// je vais recharger l'ancienne session enregistrée dans les informations du joueur
// grace à son ID si elle est encore active
if(!is_null($lnL['login_session']) && session_id($lnL['login_session'])!=''){
//Démarrage de la dernière session enregistrée
session_start();
//Suppression de l'ancienne session
session_destroy();
//Fermeture & Sauvegarde
session_write_close();
//Je recharge ma session originale
session_id($oldSession);
}
//Maj des informations de session dans la table joueur
$db->query('UPDATE player_login SET login_session=\''.session_id().'\' WHERE login_id=\''.$_SESSION['Player_Id'].'\'');
Pratiquement, si un joueur se connecte avec deux navigateurs différents ou à partir de deux postes en même temps, la session la plus ancienne est détruite (en gros, le joueur se fait déconnecter).