Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/01/2011, 11h02   #1
Futur Membre du Club
 
Inscription : mars 2010
Messages : 84
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 84
Points : 16
Points : 16
Par défaut Script php permettant d'actualiser une page sur tous les clients

Bonjour,

J'aimerai savoir si est possible d'envoyer une information d'actualisation de page de tous les postes clients connectés sur le server lors d'un appel de fonction?

Par exemple j'ai un formulaire qui va appeler un script php qui va enregistrer une ligne dans un fichier, une fois l'enregistrement terminé j'aimerai que le server envoi l'information d'actualiser la page de tout les clients connectés sur tel page.

Est ce possible? si oui vers où dois je m'orienter ?

Merci
bastian06n est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 11h16   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 015
Points : 5 015
Hello

Non, ça ne marche pas comme ça. PHP est incapable d'envoyer de lui même des données/informations à un client HTTP (un navigateur) si celui-ci n'en fait pas explicitement la demande.

Ce que tu peux faire en revanche, c'est faire en sorte que les clients vérifient à intervalle régulier le statut du serveur. On appelle cette technique Ajax et c'est ce vers quoi tu devrais t'orienter.

Enjoy
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 11h17   #3
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
C'est toujours le client qui demande, jamais le serveur.
Il faut que ton client interroge (Ajax) le serveur pour savoir s'il doit rafraichir ou non.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 11h27   #4
Futur Membre du Club
 
Inscription : mars 2010
Messages : 84
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 84
Points : 16
Points : 16
Merci pour vos réponses, le problème est que je ne peux utiliser javascript dans mon environement.

Je viens de voir un article sur les crons, avec un script tournant perpetuelment et qui se reveillerait à l'appel de la fonction d'insertion de la ligne dans le fichier.

Pensez vous que cela pourrait être une alternative?
bastian06n est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 11h45   #5
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 015
Points : 5 015
Encore une fois non. Les cronjobs s'exécutent coté serveur, donc même problème qu'évoqué précédemment. Il faut que tes clients fasse un rafraichissement pour obtenir les mises à jour.

Si tu ne peux pas utiliser JavaScript pour faire ça proprement avec Ajax, tu peux toujours forcer le navigateur à rafraichir la page à un intervalle défini dans une balise méta, mais c'est très peu ergonomique pour le client.

Code :
1
2
 
<meta http-equiv="refresh" content="600">
Rafraichit la page toutes les 10 minutes.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 14h38   #6
Futur Membre du Club
 
Inscription : mars 2010
Messages : 84
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 84
Points : 16
Points : 16
merci pour ces solutions.

Admettons que j'utilise JavaScript, un client pourra-t-il envoyer l'information de rafraichissement aux autre clients?

merci
bastian06n est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 14h47   #7
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Bonjour,

via les sockets, il me semble que ton problème peut trouver solution
__________________
Je ne réponds pas aux questions envoyées par mp
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 19h37   #8
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Citation:
Admettons que j'utilise JavaScript, un client pourra-t-il envoyer l'information de rafraichissement aux autre clients?
Non toujours pour la même raison : c'est toujours le client qui démarre une communication, il ne reçoit rien sans l'avoir demandé.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 20h20   #9
Futur Membre du Club
 
Inscription : mars 2010
Messages : 84
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 84
Points : 16
Points : 16
Comment est ce que les systems de chat marchent ils alors? ils on quand même pas une fonction JS while (true) ?!
bastian06n est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 20h59   #10
Membre Expert
 
Inscription : septembre 2010
Messages : 1 239
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 239
Points : 1 559
Points : 1 559
Sur le principe d'utiliser javascript il me semble que Benjamin Delespierre le proposait dans l'idée de faire un rafraichissement automatique tous les X secondes pour tous les visiteurs connectés.
Ainsi personne n'envoie d'info de rafraichissement nécessaire mais tout le monde est rafraichi assez souvent.

L'inconvénient est que ce n'est pas réellement en temps réel, et que si l'intervalle x est petit cela va solliciter beaucoup ta bdd.

L'utilisation d'ajax par rapport à une balise meta te permetta de faire le rafraichissement ciblé d'une partie de la page et non de la totalité de la page.

Sinon d'autres solutions à base de sockets existent (reprenant exactement le fonctionnement que tu décrit) mais beaucoup moins faciles à mettre en place et demande un serveur dédié. Tu auras plus d'explications à ce sujet en tapant "rafraichissement chat socket" dans google.
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 21h13   #11
Futur Membre du Club
 
Inscription : mars 2010
Messages : 84
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 84
Points : 16
Points : 16
Merci pour ce complément d'information ABCIWEB, Madfrix m'avait mit la puce à l'oreil je ne pensais pas que php gérait bien les sockets, je vai adapter un project java à base de socket vers PhP, merci pour toute vos infos !
bastian06n est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h26.


 
 
 
 
Partenaires

Hébergement Web