Bonjour,
Voilà je suis étudiant en informatique, et je travail sur un projet personnel en PHP/MySQL.
Mon but est de faire un site, où un utilisateur peut se connecter (identifiant/mot de passe), et accéder au contenu.
Et je veux que, si depuis une autre IP, un autre utilisateur se connecte avec le même identifiant, le premier soit alors déconnecté.
La solution simple est de créer une session en PHP, et à l'identification, on écrit dans la base de registre l'IP du client. A chaque page on vérifie si l'IP du client est la même que celle de l'utilisateur.
Si une seconde personne vient se connecter utilisant le même compte, il remplace son IP dans la base, et peut alors naviguer. Le premier quant à lui se verra refuser le contenu à sa prochaine requête.
Je sais faire ça.
Ma question est, est-il possible de faire la même chose sans effectuer de requête SQL à chaque requête HTTP ?
J'ai 3 solutions à mon problème
1) Ecrire dans un fichier les correspondances Utilisateur/IP
2) Ecrire dans un $tableau les correspondances Utilisateur/IP
3) Quand le second utilisateur se connecte, cela supprime la $_SESSION de l'utilisateur précédent
Le cas 1 ne me plait pas, celà revient au même qu'effectuer une requête.
Le cas 2 je ne sais pas faire, je ne sais pas s'il est possible d'avoir un tableau qui serait global à l'instance de PHP même
Le cas 3 je ne sais pas faire, communiquer les $_SESSION entre-elles...
Que me conseillez-vous ?
(Je suis très axé performance)
Modifié par Baud (15 May 2007 - 17:55)
Voilà je suis étudiant en informatique, et je travail sur un projet personnel en PHP/MySQL.
Mon but est de faire un site, où un utilisateur peut se connecter (identifiant/mot de passe), et accéder au contenu.
Et je veux que, si depuis une autre IP, un autre utilisateur se connecte avec le même identifiant, le premier soit alors déconnecté.
La solution simple est de créer une session en PHP, et à l'identification, on écrit dans la base de registre l'IP du client. A chaque page on vérifie si l'IP du client est la même que celle de l'utilisateur.
Si une seconde personne vient se connecter utilisant le même compte, il remplace son IP dans la base, et peut alors naviguer. Le premier quant à lui se verra refuser le contenu à sa prochaine requête.
Je sais faire ça.
Ma question est, est-il possible de faire la même chose sans effectuer de requête SQL à chaque requête HTTP ?
J'ai 3 solutions à mon problème
1) Ecrire dans un fichier les correspondances Utilisateur/IP
2) Ecrire dans un $tableau les correspondances Utilisateur/IP
3) Quand le second utilisateur se connecte, cela supprime la $_SESSION de l'utilisateur précédent
Le cas 1 ne me plait pas, celà revient au même qu'effectuer une requête.
Le cas 2 je ne sais pas faire, je ne sais pas s'il est possible d'avoir un tableau qui serait global à l'instance de PHP même
Le cas 3 je ne sais pas faire, communiquer les $_SESSION entre-elles...
Que me conseillez-vous ?
(Je suis très axé performance)
Modifié par Baud (15 May 2007 - 17:55)