Tom's Guide > Forum > Programmation > [PHP] Membres en ligne
Mot :    Pseudo :           
 

Bien le bonjour :)

Je cherche a faire un petit script qui permet d'afficher les membres en ligne sur mon site, pour cela je comptais faire un script qui s'actualise tout les x temps pour mettre un champ dans la MySQL a jour.

Mon problème est que je ne sais pas comment faire pour que seul une partie de ma page se refresh, j'ai aucune envie de mettre un refresh sur toute la page ou de faire avec une frame qui se rafraichi :) (c'est trop hideux)

------------------------------ Mon blog : http://blog.rownage.ch
Actualités Wii et programmation et d'autres de mes découvertes !
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Salut!
Je sais pas si je te serai utile, mais j'avais fais un système identique à l'époque.

Je pense que faire une refresh sur une seule partie de la page n'est pas possible (enfin c'est à confirmer) ou alors je ne sais pas comment faire. Sur mon site, la liste des membres connectés était actualisé a chaque fois que le membre actualisait lui même la page ou cliquait sur un nouveau lien sur le site.
Je te conseille donc de pas faire un truc trop compliqué avec des refresh automatiques, ça risque d'être assez "lourd" pour quelques visiteurs. :)

A++

------------------------------ Config: ASUSTeK P5K-E / GeForce 9600 GT - 512 Mo / 500 Go Samsung SpinPoint F1/ DVDR Plextor / 3.2 Go RAM / 2 écrans TFT 19'' / Intel Core 2 Quad Q6600
Répondre à The_Greek22

Salut :)
D'abord merci de ta réponse.

Mais je sais que c'est possible :p mais le seul souci c'est que je n'ai aucune connaissance du Javascript.

Enfaites ce que je compte faire, c'est un petit jeu, dans lequel on peut défier uniquement les utilisateurs en ligne.

J'ai déjà pensé faire un système comme tu m'as dis, mais si l'utilisateur est en standby, il fait autre chose pendant un certain temps, il sera considerer comme off-line et c'est pas ce que je veux, je veux que si le gars et sur mon site et loggé, on peut le defié, même si ca fait 5min qu'il a pas touché au site :)

------------------------------ Mon blog : http://blog.rownage.ch
Actualités Wii et programmation et d'autres de mes découvertes !
Répondre à r0wien

a ok
Alors dsl je sais pas comment faire ^^

Bonne chance :)

------------------------------ Config: ASUSTeK P5K-E / GeForce 9600 GT - 512 Mo / 500 Go Samsung SpinPoint F1/ DVDR Plextor / 3.2 Go RAM / 2 écrans TFT 19'' / Intel Core 2 Quad Q6600
Répondre à The_Greek22

Le problème de ce genre de script, c'est qu'il faut actualiser souvent la page, ce qui peut poser un problème pour les connections bas-débit.

Tout d'abord, sache que tu peux faire des auto-refresh de ta page web sans utiliser le JavaScript, grâce à une metabalise :

<META http-equiv="Refresh" content="x"> où x représente le nombre de secondes avant le prochain raffraichissement.

Pour voir une liste de personnes connectées, je te renvoie à cette page : http://www.amen.fr/forum/read.php? [...] &i=18&t=18

Si tu es en création d'un jeu, je suppose que tu as des solides bases en PHP&SQL; ce ne sera pas donc très dur d'intégrer un champ 'pseudo' à la table crée. Ensuite il suffit d'intégrer le code dans ta page et de le coupler à tes sessions. En vérité ce n'est pas très dur, le plus compliqué t'es fourni sur la page.

En espérant que ça t'aura aidé!

Répondre à demo_jouable

Salut,
Je connaissais déjà cette solution, mais c'est pas la bonne :) cette solution rafraichi toute la page, ce que je veux éviter.

Et comme je l'ai expliqué en haut, lorsque l'utilisateur est en standby, il faut que l'utilisateur s'affiche toujours connecté, alors que dans le lien que tu m'as donnés après 30 secondes d'inactivités (si je m'en souviens bien) il sera plus marqué comme "en-ligne".

------------------------------ Mon blog : http://blog.rownage.ch
Actualités Wii et programmation et d'autres de mes découvertes !
Répondre à r0wien

salut, tu peux utiliser ajax pour rafraichir juste une portion de la page:
http://www.editeurjavascript.com/t [...] script.php

------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

j'avais compris que c'était une portion de page, mais j'ai oublié d'exposer mon idée; je viens de m'en rendre compte en relisant mon message :$

Je me disais que tu pourrais utiliser une iframe : <iframe src="">, je sais pas pourquoi tout le monde me dit que c'est pas bien, mais moi j'en utilise pas mal, et je n'ai jamais eu de problème de compatibilité, de ralentissement ou d'esthétisme... Tu peux ensuite mettre un auto-refresh sur cette frame

C'est une idée comme une autre :p

[EDIT] : encore oublié un truc -_- : tu peux définir le temps au bout duquel l'utilisateur sera considéré comme inactif il me semble, j'avoue que j'ai pas exploré le code de fond en comble...


Message édité par demo_jouable le 01-07-2007 à 15:13:35
Répondre à demo_jouable

Bonjour a tous

il y a plus simple en créant une liste connecté dans ta table membres INT (0 et 1) à chaque fois que le membre passe par la page connect tu fais un update qui change ton 0 en 1 et pour récupéré tu fais un select pseudo from membres where connecté=1

j'mexplique

dans ta table membre tu crées un nouveau nom "connecté" en "INT" valeur par défaut "0"

ensuite a chaque fois que le membre se connecte tu crée un update qui change le 0 en 1

$sql= "UPDATE membres
SET connecté = 1
WHERE pseudo='$_POST[pseudo]'"

pour afficher la liste des membres connecté ta juste a récupéré la liste avec un "select pseudo from membres where connecté=1"


pour afficher le nombre de visiteurs connectés c'est simple on ajoute COUNT(*) au select ce qui donne:

$retour = mysql_query("SELECT COUNT(*) connecté FROM membres WHERE connect=1" );
$donnees = mysql_fetch_array($retour);

echo '<p>il y\'a ' .$donnees['connecté'].' membres connectés</p>';

ne pas oublier de remettre a 0 a chaque fois que le membre se déconnecte

$sql= "UPDATE membres
SET connecté = 0
WHERE pseudo='$_SESSION[pseudo]'"

Répondre à kimil14
Tom's Guide > Forum > Programmation > [PHP] Membres en ligne
Aller à :

Il y a 307 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens