Comment interdire les connexions répétées en PHP : 1. Obtenez l'ID de la session de navigateur actuellement ouverte ; 2. Déterminez si le session_id dans la base de données est égal au session_id actuel. Sinon, vous devez sauter et. reconnectez-vous.
L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur DELL G3
php empêche les utilisateurs de se connecter à plusieurs reprises
🎜>
Comprenons d'abord plusieurs paramètres de la session :
ini_set('session.auto_start',0);
Copier après la connexion
Définir pour désactiver le démarrage automatique de la session
ini_set('session.cookie_lifetime',0);
Copier après la connexion
Définir la session pour qu'elle soit invalide lorsque le navigateur est fermé. La session est comme ça par défaut. Il n'est pas nécessaire de définir
ini_set('session.gc_maxlifetime',3600);
Copier après la connexion
Définir la durée de la session lorsque le navigateur n'est pas fermé
Vous connaissez probablement les paramètres ci-dessus, alors commençons par comprendre le contenu d'aujourd'hui. Chaque fois qu'un utilisateur se connecte à un compte, il ouvre un navigateur et un session_id est automatiquement généré (unique pendant la période de validité), puis nous stockons cet identifiant unique dans la table user (la session en cours est mise à jour à chaque fois qu'il se connecte) La valeur de session_id dans la table des utilisateurs du compte). De cette façon, toutes les interfaces après la connexion doivent déterminer si le session_id() du navigateur actuel est cohérent avec le session_id de la table utilisateur de la base de données. S'ils sont incohérents, cela indiquera que le compte actuel est en ligne et. vous devez vous reconnecter avant de pouvoir refuser sa connexion. (C'est-à-dire qu'un seul utilisateur peut se connecter à la fois, et les utilisateurs qui se connectent plus tard évinceront les utilisateurs qui se sont connectés au compte plus tôt)
Pour plus de détails, jetons un œil au code : (Pour les autres codes qui ne sont pas liés au code de ce tweet, je n'entrerai pas dans les détails)
La première case : Récupérer l'identifiant de l'actuellement ouvert session du navigateur et préparez-vous à l'insertion et à la mise à jour suivantes du session_id unique dans la base de données
Deuxième case : Déterminez si le session_id dans la base de données est égal au session_id actuel. S'ils ne sont pas égaux, mettez à jour le session_id dans. la base de données actuelle. S'ils sont égaux, renvoyez 3 directement au front-end ajax
Dans l'interface index.php, cette case indique si le session_id() actuel est égal au session_id de la base de données. S'ils ne sont pas égaux, cela signifie que le compte actuel est déjà connecté et que le session_id n'est pas égal et que vous devez vous reconnecter.
Apprentissage recommandé : "Tutoriel vidéo PHP
"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!