Savoir si un utilisateur est connecté

Savoir si un utilisateur est connecté - PHP - Programmation

Marsh Posté le 03-11-2014 à 23:54:20    


Bonjour à tous ,
 
Je cherche une méthode fiable pour savoir si un utilisateur est connecté. Si il est il a la possibilité d'écrire dans les news du site sinon non . Cependant je n'ai jamais fait cette manipe et j'utilise un forum ipb.
 
J'ai donc penser à récupérer l'IP du client et si elle existait je considère que le client est connecté . Cependant l'IP enregistré dans la table de mon forum est celle d'inscription et n'évolue pas . Moi même je change 3 fois d'IP par semaine donc ....
 
Je souhaiterais donc savoir qu'elle méthode je peux utiliser  
 
merci d'avance

Reply

Marsh Posté le 03-11-2014 à 23:54:20   

Reply

Marsh Posté le 04-11-2014 à 11:58:15    

Plutot qu'une IP, tu vas utiliser des cookies pour identifier tes visiteurs.
 
T'as un cours ici par ex : http://openclassrooms.com/courses/ [...] et-cookies

Reply

Marsh Posté le 04-11-2014 à 17:38:20    

En gros, tu veux qu'un utilisateur puisse écrire/modifier une news s'il est connecté (ie, authentifié) au site, c'est bien ça ?
 
Le plus simple est d'utiliser les sessions (en PHP, la variable $_SESSION + la fonction session_start()). ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 04-11-2014 à 20:04:56    

Je vais regarde tout ca merci

Reply

Marsh Posté le 05-11-2014 à 17:20:27    

J'ai trouvé une astuce avec l'id membre et l'ip : je recupère l'id du client puis je vais dans ma table des sessions en cours. Si l'id n'est pas égal à 0, donc le membre est inscrit, donc il peut écrire ! :D

Reply

Marsh Posté le 06-11-2014 à 10:09:21    

Euh, si t'as déjà un ID pour le client, c'est qu'il est inscrit, sinon,, comment aurait-il eu un ID :??: Se baser sur l'IP est une très mauvaise idée (genre s'il se connecte une fois avec son PC et une autre avec son tél portable ou d'un PC de son travail par ex => @IP différentes).
 
Edit : et je parle même pas des personnes qui spoufent leur @IP (IP aléatoire) ou qui passent par un proxy ou un VPN (@IP identique pour tous les utilisateurs qui passent par le même proxy/VPN).


Message édité par rufo le 06-11-2014 à 10:10:56

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 16-11-2014 à 17:14:25    

En faite j'utilise l'ip box qui est mis à jour automatiquement par ipb dans la base quand il change. Le soucis est qu lorsque 2 personnes se connectent avec la même box, et bien c la merde :D
Donc je suis allez voir des sessions, j'ai trouvé cela :
 
<img src='{$session['_memberData']['pp_thumb_photo']}' alt="<if test="hasonlinename:|:$session['_memberData']['members_display_name']">{$session['_memberData']['members_display_name']}<else />{$this->lang->words['global_guestname']}</if>{$this->lang->words['users_photo']}" width='{$session['_memberData']['pp_thumb_width']}' height='{$session['_memberData']['pp_thumb_height']}' class='photo' />
 
Mais lorsque je lance une session impossible de récupérer quoique ce soit ! A l'aide :/

Reply

Marsh Posté le 17-11-2014 à 00:43:32    

Oui, les sessions, ça pose toujours quelques problèmes quand on n'en a jamais utilisé. C'est pour ça que c'est plus simple d'utiliser des cookies. Mais chacun ses goûts.


Message édité par olivthill le 17-11-2014 à 00:44:25
Reply

Marsh Posté le 17-11-2014 à 10:49:55    

sparadra1 a écrit :

En faite j'utilise l'ip box qui est mis à jour automatiquement par ipb dans la base quand il change. Le soucis est qu lorsque 2 personnes se connectent avec la même box, et bien c la merde :D
Donc je suis allez voir des sessions, j'ai trouvé cela :
 
<img src='{$session['_memberData']['pp_thumb_photo']}' alt="<if test="hasonlinename:|:$session['_memberData']['members_display_name']">{$session['_memberData']['members_display_name']}<else />{$this->lang->words['global_guestname']}</if>{$this->lang->words['users_photo']}" width='{$session['_memberData']['pp_thumb_width']}' height='{$session['_memberData']['pp_thumb_height']}' class='photo' />
 
Mais lorsque je lance une session impossible de récupérer quoique ce soit ! A l'aide :/


C'est bien pour ça que je te parlais des pbs avec des VPN ou proxy. Une box, c'est un peu comme un proxy. D'où pourquoi il ne faut pas se baser sur l'@IP. Eventuellement sur la Mac adresse et encore, ça peut se falsifier :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 17-11-2014 à 18:17:12    

rufo a écrit :


C'est bien pour ça que je te parlais des pbs avec des VPN ou proxy. Une box, c'est un peu comme un proxy. D'où pourquoi il ne faut pas se baser sur l'@IP. Eventuellement sur la Mac adresse et encore, ça peut se falsifier :/


 
Et il n'y a aucune raison que tu chope l'addresse MAC de ton utilisateur, elle est faite pour ne PAS circuler sur le réseau non local. Tu vas probablement recevoir la MAC du routeur proche de ton serveur. Et même si tu récupère la vrai MAC, comme elle circule sur un réseau local et se modifie TRES facilement (1 commande sous linux), elle ne permet pas l'authentification.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed