begin process at 2012 05 28 09:52:16
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Trucs & Astuces

 > QUI EST EN LIGNE - TEMPS PRESQUE RÉEL - JAVASCRIPT ET PHP

QUI EST EN LIGNE - TEMPS PRESQUE RÉEL - JAVASCRIPT ET PHP


 Information sur la source

Note :
9,5 / 10 - par 2 personnes
9,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Trucs & Astuces Classé sous :online, utilisateur, visiteur, ligne, xmlhttprequest Niveau :Initié Date de création :21/11/2005 Date de mise à jour :22/11/2005 16:15:48 Vu / téléchargé :17 443 / 1 598

Auteur : josh666

Ecrire un message privé
Commentaire sur cette source (22)
Ajouter un commentaire et/ou une note

 Description

Bonjour à tous,

Voici un code que je vien a peine de terminer. Vous connaisser surement des scripts en PHP qui permette de savoir qui est en ligne sur votre site... leur principe est simple:

Lors de laffichage d'une page stoker le ip, la date et l'heure de visionnement du visiteur dans une BD ou autre support comme un fichier texte.Et ensuite faire un script PHP pour qui supprime les entrée IP ayant la date inférieure à la date actuel - X minutes . Ou X est un nombre de minute, ensuite compter le nombre d'entrée IP restante et lafficher.

Bon et bien je suis parti du même principe mais j'ai grandement améliorer le système, le plsu grand problème de c'est script c'est leurs précision... admetton qu nous mettons 5 pour le X cela fait 5 min ou ne sait pas si le visiteur est vraiment en ligne...

Et bien le script que je vous propose règle se problème et passe de 5min à 20 secondes... beaucoup plus précis non ?

Source

  • <!-- LE RESTE EST DS LE ZIP -->
  • <!-- LE RESTE EST DS LE ZIP -->
  • <!-- LE RESTE EST DS LE ZIP -->
  • <!-- EXEMPLE DE PAGE AVEC CE SCRIPT -->
  • <html>
  • <head>
  • <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  • <title>whoIsOnline</title>
  • <script language="javascript" src="includes/js/whoIsOnline.js"></script>
  • </head>
  • <!--
  • // Système pour connaitre les personne en lignes sur son site...
  • // Système améliorer des versions traditionnel, puisque la précision ce compte en secondes
  • // Programmer par Jocelyn Ménard
  • // crenox@hotmail.com
  • fonctionnement:
  • function start ds le unload du body ->
  • PARAMETRE:
  • 1 : le idPath -> C'est le préfix des id des zones... (laisser tel quel)
  • 2 : temps apres lequel l'update de connection est effectué (en secondes)
  • 3 : variable SERVEUR PHP qui est égal au IP du visiteur .. (laisser tel quel)
  • LE DIV:
  • Placer le DIV whoIsOnline_zone à l'endroit désirer dans zotre page.. c'est
  • à cet encdoirt que le nombre de visiteur sera afficher
  • -->
  • <body onLoad="start('whoIsOnline',15,'<?php echo $_SERVER['REMOTE_ADDR']; ?>'); onUnload="checkClosePage('<?php echo $_SERVER['REMOTE_ADDR']; ?>');"">
  • <div id="whoIsOnline_zone" style="border:1px #006699 solid;width:200px;height:15px;padding:4px; background-color:#CCCCCC;"></div>
  • </body>
  • </html>
<!-- LE RESTE EST DS LE ZIP -->
<!-- LE RESTE EST DS LE ZIP -->
<!-- LE RESTE EST DS LE ZIP -->

<!-- EXEMPLE DE PAGE AVEC CE SCRIPT -->

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>whoIsOnline</title>
<script language="javascript" src="includes/js/whoIsOnline.js"></script>
</head>
<!--
// Système pour connaitre les personne en lignes sur son site... 
// Système améliorer des versions traditionnel, puisque la précision ce compte en secondes
// Programmer par Jocelyn Ménard
// crenox@hotmail.com

fonctionnement:
function start ds le unload du body -> 
PARAMETRE:
1 : le idPath -> C'est le préfix des id des zones... (laisser tel quel)
2 : temps apres lequel l'update de connection est effectué (en secondes)
3 : variable SERVEUR PHP qui est égal au IP du visiteur .. (laisser tel quel)

LE DIV:
Placer le DIV whoIsOnline_zone à l'endroit désirer dans zotre page.. c'est
à cet encdoirt que le nombre de visiteur sera afficher

-->
<body onLoad="start('whoIsOnline',15,'<?php echo $_SERVER['REMOTE_ADDR']; ?>');  onUnload="checkClosePage('<?php echo $_SERVER['REMOTE_ADDR']; ?>');"">
<div id="whoIsOnline_zone" style="border:1px #006699 solid;width:200px;height:15px;padding:4px; background-color:#CCCCCC;"></div>
</body>
</html>

 Conclusion

Le script fonctionne avec XMLHttpRequest qui est maintenant compatible avec plusieurs navigateur.

Le simple ... quelques fonctions javascript gère le temps ecouler, et apres X secondes appelle une page PHP qui actualise la connection indiquant que le visiteur est encore en ligne. (Pour ceux qui ne savent pas comment focntionne XMLHttpRequest c'Est une fonction javascript qui permet d'executer un fichier serveur sans recharger la page et d'en tirer des données)

Il y a aussi un lien a coter du de nombre de visite pour actualiser ce nombre... donc si vous cliquer vs verrez le nombre changer si il y du trafic sur votre site

NOTE: N'oublier pas de modifier les paramètre de connexion a votre BD dans le fichier config.php
NOTE2: La Variable $_SERVER['REMOTE_ADDR'] ne semble pas fonctionner en local, donc pour test local remplacer <?php $_SERVER['REMOTE_ADDR']; ?> par un ip fictif comme: 127.0.0.1 ... c'est aussi une bonne maniere de teste plusieurs connection... avec une plusieurs copies de exemple.php avec un ip différent à la place de <?php $_SERVER['REMOTE_ADDR']; ?>.


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

21 novembre 2005 05:36:18 :
Modification des explications
22 novembre 2005 16:15:49 :
Modification de l'exemple

 Sources du même auteur

Source avec Zip Source avec une capture SYSTÈME POUR COMPTER VOS POINTS LORS DE VOS PARTIE DE FLÉCHE...
Source avec une capture UTILITAIRE DE DEBUGAGE DE TABLEAU MULTIDIMENTIONNEL

 Sources de la même categorie

PARSER LES CARACTÈRES HTML D'UNE STRING par jdmcreator
CONSTRUCTION D'UNE TABLE TRIABLE À PARTIR D'UN TABLEAU 2D par phm
Source avec Zip Source avec une capture SUBDIVISER LE RÉSULTAT D'UNE RECHERCHE EN PAGES par kimmp
Source avec Zip TIMER : SETTIMEOUT & SETINTERVAL AMÉLIORÉS par jdmcreator
Source avec Zip Source avec une capture ONGLETS ET CHANGEMENT INSTANTANÉ DE LA LANGUE par william voirol

 Sources en rapport avec celle ci

Source avec Zip SIMULER UN SERVEUR COMET (EN PUSH) EN PHP ET JS par sebcap26
Source avec Zip Source avec une capture MOTEUR DE RECHERCHE SANS PHP par jdmcreator
Source avec Zip OBLIGER UN UTILISATEUR DE COCHER UNE CHECKBOX POUR VALIDER U... par yoyo17560
Source avec Zip [GAG] GESTION AJAX GÉNÉRALISÉE par bultez
Source avec Zip Source avec une capture DESSINER DES CERCLES/DISQUES/LIGNES EN JAVASCRIPT par macsou01

Commentaires et avis

Commentaire de josh666 le 21/11/2005 17:32:45

Laisser vos commentaires ! Et une note aussi ! :P

Commentaire de josh666 le 22/11/2005 01:41:13

Quelqu'un peu me dire pourquoi ya jamais personne qui donne des commentaires ou de note sur mes sources... :( lol :P

Commentaire de coucou747 le 22/11/2005 09:09:20 administrateur CS

salut, on es tous plus ou moins victime de ce manque de commentaires, faut pas s'énerver et attendre... Les gens passent lpus de temps à programmer ou sur le forum que sur les sources des autres, et c'est compréhensible... Vas voir le top  des membres, tu verras que c'est pas glorieu... pour plus de 500 000 inscrits, on pourrait s'attendre à mieux...
Bon, sinon, ta source js est pas trop mal, aparement compatible IE et mozilla (j'ai pas testé...)
coté php :
on ne mets pas
<?php $_SERVER['REMOTE_ADDR']; ?>
mais on met un echo ... c'est plus corect !
sinon, lis ça :
http://192.168.180.1/index.php?action=lire_page&id=4
ça pourrait t'aider un peu...

Commentaire de manouille le 22/11/2005 09:27:31

Ca vas etre dur à tout internaute de lire ce que tu présente étant donné que tu fournis une adresse de reseau interne (192.168 ...).

;-))

Commentaire de coucou747 le 22/11/2005 09:35:50 administrateur CS

c'est normal, pour tester... t'as qu'a faire que lire le code si tu veux pas utiliser et modifier les ip si tu veux utiliser...

Commentaire de manouille le 22/11/2005 09:43:42

????
Dans l'ordre ca donne quoi ?
Désolé j'ai pas compris ce que tu veux me dire

Commentaire de coucou747 le 22/11/2005 09:48:31 administrateur CS

on peut mettre des ip réseau local, c'est pas dérangeant car si tu testes, t'as pas les mêmes, donc de toute façon t'es obligé de changer... et si tu veux seulement lire le code, alors ça ne dérange pas...

Commentaire de manouille le 22/11/2005 09:54:52

ok pour ca, de plus que tu n'es pas forcé de tester en local...

Et le fichier + paramètres index.php?action=lire_page&id=4 je le trouve ou et il correspond a quoi ?

Commentaire de coucou747 le 22/11/2005 10:00:10 administrateur CS

lol

ça, c'est mon explication sur ce qui est bien en php et ce qui est mauvais, c'est pas moi qui ai fait cette source ! moi j'ai simplement expliqué ce qu'on peut y améilorer, et j'ai remarqué que le codage php c'était pas bon, alors j'ai mis une URL de doc (vers mon site)... ces paramètres permettent d'accèder à la page.

Commentaire de manouille le 22/11/2005 10:03:28

HA ok, lol on vas y arriver...
Bon moi je vais retourner coucher... Visiblement c'est pas ma journée...

Commentaire de josh666 le 22/11/2005 14:54:49

Oups désolé pour le echo... un petit oubli de ma part... faut dire que j'ai fait sa vite.. :P Je corrige sa des maintenant.

Mais en ce qui concerne la source en tant que tel, vous est-ce que vs trouver sa trop gourmand pour le serveur... ? d'apres moi sa devrait pas... c'est seulement quelque ko a chauque 20sec dépendemment de la config de updateTime .

Je n'ai pas réussis a ouvrir ta page coucou47, mais je ne doute que sa doit parler de la récupération des donnée avec $_GET et $_POST , etc etc... Donc je modifi sa dès ce soir

++ Si vous avez des question n'hésiter pas

Commentaire de manouille le 22/11/2005 15:00:17

Si le serveur est un dédié ca vas, pas de soucis, mais si c'est un mutalisé ca risque d'etre plus genant car certain hebergeur limite le nombre de requette à l'heure ....

Commentaire de coucou747 le 22/11/2005 15:02:45 administrateur CS

Ah merde :
http://coucou747.hopto.org/index.php?action=lire_page&id=4

évidement que t'as pas réussi à ouvrire la page ^^

Bon, c'est pas tout à fait sur ça... mais t'étais pas loin...

Commentaire de lotfi2benak le 22/11/2005 18:33:54

Moi je my connais pas, mais c'est just pour t'encourager a continuer et pour te dire qu'on est là ;-)

Commentaire de malalam le 24/11/2005 14:01:52 administrateur CS

Hello,

je n'ai pas maté le code.
Mais je tenais à dire 2-3 petites choses :-)
- body onload...ce n'est plus très conforme, comme attribut, onload.
- xmlhttp n'est pas une fonction javascript, c'est un objet javascript.
- je suis d'accord avec Manouille. Utiliser les requêtes xmlhttp pour ce genre d'applications est maladroit à mon avis. Ca fait un bon paquet de requêtes http attaquant le serveur web et le serveur db, quand même (surtout avec une précision à 20 secondes).

Bon à part ça, je ne m'avance pas sur la qualité du code ne l'ayant pas lu. Mais l'idée est sympa de toutes façons :-)

Commentaire de josh666 le 24/11/2005 14:41:20

Ouais je c que c pas ce qui a de plus intelligent... mais le scrip est parmétrable donc si vous vouler qu'il ne soit pas trop gourmant et bien vs avez juste a mettre 5min comme parametre soit:
(5*60) = 300secondes .

La vs vs dites pour utiliser ce script plutot qu'un script conventionnel , et bien c'est simple si l'utilisateur reste plus de 5min sur cette page, parce ce qu'il est totalement ébais par les texte que vs avez composer et bien sa connection va "s'updater" . Avec un script conventionnel si un utilisateur reste ce même 10 minutes, et bien apres 5 il ne sera plus condisidéré comme connecter.

Mon script a un autre avantage, on peu actualiser le nombre de visiteur sans recharger la page.

Et c'est vrai que c'est un objet et non une fonction... j'arrivais pas a me rappeler le nom (blanc de mémoire) lorsque j'ai composer le texte.. :P

Jespère avoir éclairé vos antenne.. :)

Commentaire de tiess81 le 27/11/2005 18:43:40

J'ai essayé de tester ce code de josh666 et faut dire qu'on ne retrouve pas la structure de la table mysql utilisée dans les requetes.
Je crois que c fut un autre oubli de ta par. En tout pour ma part je te remercie car ça ma permi d'en apprendre sur XMLHttpRequest et j'ai télécharger des tutotiaux sur ça. Je savais que google un truc dans le genre mais mtn je suis bien fixé sur la methode utilisée par google et je compte l'utiliser dans mes prochains scripts. Grand merci!

Commentaire de josh666 le 30/11/2005 16:03:18

/* Pour répondre à Tiess81
Non je n'ai pas oublier la structure le base de donnée
Tu peux remarker dans le code une fonction qui appelle la page checkTableRessource.php ... dans cette page le script vérifi si la table existe si elle n'existe pas elle la créer...
Pour que sa table soit créer il faut que les configuration de ta base de donnée soit mise ds le fichier config.php

Sur ce ++

Commentaire de deneuvier le 11/04/2007 01:00:20

Moi je trouve ta fonction géniale, je vais l'utiliser sur mon site !!

++ et bon courage

Commentaire de CYRILOZIL le 19/07/2008 15:32:54

Bonjour !
Je ne sais pas pourquoi mais de mon coté les tables ne se cré pas ^^

Commentaire de RomantikA le 20/07/2008 13:10:44

Bonjour... tout d'abord je félicite Josh666, parceque coder des truk comme ça... quand on y connais rien c'est du boulot...
Moi perso je suis un peut ce qu'on pourrait qualifier comme "débutant". j'essaie d'apprendre sur le tas.. et ça me réussi un peut... parceque au début, quand j'ai commencé mon site, je savais rein du tout.. et maintenant ça avance plus vite mes pitits codage ... :)

bref, donc félicitation pour avoir réussi à faire quelques chose d'intéligent... et ton idée est très simpa... c'est d'ailleur ce que je recherche à faire sur mon site.

Enfaite plus exactement j'aimeré fair en système comme sur certain forum, c'est à dire savoir qui viens (ce qui afficheré son pseudo...) un truk dans le genre...
Mais là c'est une autre histoire, il faut faire un truc de membre rég et tout je pensse (et moi pas savoir faire tou ça :'( ).. donc je laiss tomber malheureusement...

Mais tou ça pour dire que ta eu une bonne idée et que ton aide va être précieuse à beaucoup de monde je pensse. (moi le premier).

Et....
Et,
Et pourtant... j'ai un souci..
étant débutant comme je le disais, j'ai du mal à comprendre pourquoi le code ne fonctionne pas chez moi :/

J'ai un rectangle gris sur la page test... mais rien d'autre... de plus un message dans la barre des tâche me di en gros "Terminé mais ya des Erreurs"....
Alors je suis un peut dans la panade là.... :/

Quelqu'un sourait donc me dire quel pourrait etre mon souci?
sachant que j'ai rien modifier du tout, j'ai laissé le script comme original (une sorte de clin d'oeil à l'auteur.... et faut avouer aussi que je risquerai faire plus de bétises qu'autre chose ^^).

Merci d'avance pour votre réponse...

Et bon courage à tout les codeurs débutants ou expérimentés... ya des truc super super simpa sur ce site...

Continuez... ;)

Commentaire de maclive le 20/02/2010 22:18:39 9/10

il manque un " pour fermer le onload dans la page exemple !
moi j'aime bien ce genre de fonction :D, de plus j'ai été surpris qu'elle soit si peut répendu ... enfin bref com + note normal car j'utilise ton script et qu'il me conviens très bien merci encore ;)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

polices [ par inconnue ] Salut, j'aimerai savoir ce qu' il faut faire lorsque l'on utilise une police spéciale, c'est-à-dire non commune dans les polices de périphérique (type changement de couleur apres activation d'une check box [ par ddyefre ] salut !j'aimerai savoir comment faire ou bien si vous avez des scripts qui me permettrait de changer la couleur d'une ligne lorsque l'utilisateur cliq fermer une fentre avec un clic [ par jje ] est ce que vous savezsi c'est possible de fermer une fenetre, qui a du texte et des images. Je voudrais qu'elle se ferme sur simple clic gauche de l'u nom d'utilisateur [ par niceboy ] Je cherche depuis longtemps un moyen de savoir le nom d'utilisateur Windows de mes visiteurs. Y at-il un moyen de l'obtenir en Javascript ou dans un a mon premier site - help - [ par Michette ] Merci de me faire vos commentaires sur le site .http://194.158.10.78/classe9/marina/index.htmA noter que.1) la fenêtre pop-up (lien sur drapeau frança liste deroulante et refresh [ par Sinse ] Salut!Voila j'ai une liste deroulante et un tableau. Chaque fois que l'utilisateur choisit un item dans la liste la page html se reactualise.Seulement Recherche script particulier mais répendu ! [ par winboost ] Bonjour à tous les codeurs !Voila, je programme moi même en PHP, mais ne m'interresse pas beaucoup au JAVASCRIPT ; or c'est bien de ce dernier dont j' BUG: ou comment niquer la mise en page ... [ par Mumuri ] voila je voulais juste vous avertir, que quand j'avais posté ma source, j'avais une ligne de code continu (sans espace) sans retour à la ligne, j'ai v Utiliser une police que le visiteur n'a pas ?! [ par Michael ] Je voudrais bien utiliser sur mon site une police que tout le monde ne possède pas. Je ne veux pas la mettre en image, ça serait trop lourd.Alors, qqn Detecter si l'utilisateur est On/Off line avec JS [ par Chnickel ] Il y a t'il une commande ou un test Javascript pour déterminersi l'internaute est connecté ou pas ???Le prb est simple j'utilise des petits marqueurs


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,168 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales