Discussion:
Pb de selection de combobox et verrou / file d'atte nte
(trop ancien pour répondre)
m***@gmail.com
2008-04-26 11:59:43 UTC
Permalink
Bonjour,

Je ne connais pas bien PHP.

Sur différents navigateurs internet, je voudrais que des utilisateurs
puissent déclencher le lancement d'un
fichier PHP (qui lui-même génère un xml) sans que cela déclenche
d'erreurs si le déclenchement a lieu
simultanèment.

Je m'explique:
------------------------
sur un evenement, on lance un fichier PHP qui lui-même écrit et
formate
un fichier XML qui doit être différent pour chaque valeur de la
combobox choisie.

J'avais pensé utilisé des identifiants de session à rajouter au nom du
fihier xml pour que chaque utilisateur
qui a choisi sa propre valeur dans la combobox voit bien son propre
fichier (et pas celui du voisin).

Mais ça ne suffit pas apparemment.

Il faut utiliser des verrous, des files d'attente ?? car le fichier
PHP lui porte toujours le même nom
Comment cela fonctionne t'il ? Est-ce que flock est une bonne piste ?


Merci pour l'aide.
Tony
Olivier Miakinen
2008-04-26 22:02:34 UTC
Permalink
Bonjour,
Post by m***@gmail.com
Je ne connais pas bien PHP.
Il est encore temps de s'y mettre, par exemple avec la doc :
http://www.php.net/docs.php

Il y a aussi la FAQ de ce groupe, en particulier le paragraphe suivant :
http://faqfclphp.free.fr/#rub2.3
Post by m***@gmail.com
Sur différents navigateurs internet,
Sauf traitement spécifique (non recommandé et basé sur une détection
aléatoire), le résultat de l'exécution d'un script PHP ne dépendra pas
du navigateur.
Post by m***@gmail.com
je voudrais que des utilisateurs
puissent déclencher le lancement d'un
fichier PHP (qui lui-même génère un xml) sans que cela déclenche
d'erreurs si le déclenchement a lieu
simultanèment.
Je n'ai pas compris. Voyons la suite.
Post by m***@gmail.com
------------------------
sur un evenement, on lance un fichier PHP
Quel genre d'événement ? Un clic sur un lien <a href="xxx.php"> ? Ou
peut-être un script JavaScript qui fait une requête via XHR (Ajax) ?
Post by m***@gmail.com
qui lui-même écrit et formate
un fichier XML qui doit être différent pour chaque valeur de la
combobox choisie.
Ce n'est pas clair. Qu'est-ce qu'une « combobox », quelles sont ses
« valeurs », et quel rapport avec PHP ? Et en fait, qu'est-ce que tu
cherches à faire exactement ?
Post by m***@gmail.com
J'avais pensé utilisé des identifiants de session à rajouter au nom du
fihier xml pour que chaque utilisateur
qui a choisi sa propre valeur dans la combobox voit bien son propre
fichier (et pas celui du voisin).
Chaque utilisateur génère un fichier qui lui est propre, et qu'il doit
récupérer ensuite ? Si c'est via XmlHttpRequest, pourquoi n'obtiendrait-
il pas directement le contenu du fichier au lieu de son nom, auquel cas
après il en fait ce qu'il veut ?
Post by m***@gmail.com
Mais ça ne suffit pas apparemment.
Il faut utiliser des verrous, des files d'attente ?? car le fichier
PHP lui porte toujours le même nom
Euh... je ne vois pas bien le rapport entre le nom du fichier PHP et ce
qu'il génère (qui peut être différent d'un appel à l'autre, surtout en
fonction des paramètres qu'on lui passe).
Post by m***@gmail.com
Comment cela fonctionne t'il ?
C'est la question que je te pose : tu veux faire quoi au juste ? Est-ce
que tu aurais un bout de page HTML montrant ce que tu as commencé à faire ?
m***@gmail.com
2008-04-27 10:53:34 UTC
Permalink
merci pour la rép.

C'est pour une application qui existe déjà et où j'essaie de créer une
visualisation de vignettes jpeg
de couvertures de livres selon le type choisi par une combobox
(valeurs "livres policiers", "livres de sf", etc).

Sur l'évènement onChange de la combobox, un script php est lancé
1/ qui interroge une base MySQL pour récupérer les images
correspondantes à par exemple "livres policiers".
2/ génère un fichier XML pour formatter les données.

En monoposte cela fonctionne très bien, mais quand 2 utilisateurs
différents choisissent au même moment
sur 2 navigateurs différents l'un "livres policiers" et l'autre
"livres de sf" il y a erreur.

Au début je pensais que c'est parce qu'ils partageaient le fichier XML
au même nom.
J'ai créer autant de fichiers XML que de demandes en rajoutant au nom
du
fichier XML un identifiant de session.

Mais il y a encore erreur.
Post by m***@gmail.com
Bonjour,
Post by m***@gmail.com
Je ne connais pas bien PHP.
Il est encore temps de s'y mettre, par exemple avec la doc :http://www.php.net/docs.php
Il y a aussi la FAQ de ce groupe, en particulier le paragraphe suivant :http://faqfclphp.free.fr/#rub2.3
Post by m***@gmail.com
Sur différents navigateurs internet,
Sauf traitement spécifique (non recommandé et basé sur une détection
aléatoire), le résultat de l'exécution d'un script PHP ne dépendra pas
du navigateur.
Post by m***@gmail.com
je voudrais que des utilisateurs
puissent déclencher le lancement d'un
fichier PHP (qui lui-même génère un xml) sans que cela déclenche
d'erreurs si le déclenchement a lieu
simultanèment.
Je n'ai pas compris. Voyons la suite.
Post by m***@gmail.com
------------------------
sur un evenement, on lance un fichier PHP
Quel genre d'événement ? Un clic sur un lien <a href="xxx.php"> ? Ou
peut-être un script JavaScript qui fait une requête via XHR (Ajax) ?
Post by m***@gmail.com
qui lui-même écrit et formate
un fichier XML qui doit être différent pour chaque valeur de la
combobox choisie.
Ce n'est pas clair. Qu'est-ce qu'une « combobox », quelles sont ses
« valeurs », et quel rapport avec PHP ? Et en fait, qu'est-ce que tu
cherches à faire exactement ?
Post by m***@gmail.com
J'avais pensé utilisé des identifiants de session à rajouter au nom du
fihier xml pour que chaque utilisateur
qui a choisi sa propre valeur dans la combobox voit bien son propre
fichier (et pas celui du voisin).
Chaque utilisateur génère un fichier qui lui est propre, et qu'il doit
récupérer ensuite ? Si c'est via XmlHttpRequest, pourquoi n'obtiendrait-
il pas directement le contenu du fichier au lieu de son nom, auquel cas
après il en fait ce qu'il veut ?
Post by m***@gmail.com
Mais ça ne suffit pas apparemment.
Il faut utiliser des verrous, des files d'attente ??  car le fichier
PHP lui porte toujours le même nom
Euh... je ne vois pas bien le rapport entre le nom du fichier PHP et ce
qu'il génère (qui peut être différent d'un appel à l'autre, surtout en
fonction des paramètres qu'on lui passe).
Post by m***@gmail.com
Comment cela fonctionne t'il  ?
C'est la question que je te pose : tu veux faire quoi au juste ? Est-ce
que tu aurais un bout de page HTML montrant ce que tu as commencé à faire ?
Mickael Wolff
2008-04-27 18:58:17 UTC
Permalink
Post by m***@gmail.com
de couvertures de livres selon le type choisi par une combobox
(valeurs "livres policiers", "livres de sf", etc).
Les combobox n'existent pas en HTML.
--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
Christophe Meresse
2008-04-28 09:07:13 UTC
Permalink
Post by Mickael Wolff
Post by m***@gmail.com
de couvertures de livres selon le type choisi par une combobox
(valeurs "livres policiers", "livres de sf", etc).
Les combobox n'existent pas en HTML.
Oui bon, je suppose qu'il parle d'un <select>.
La combo-box (avec liste déroulante ET possibilité d'édition) existe
avec html+javascript.

Christophe
Paul
2008-04-27 18:58:17 UTC
Permalink
Post by m***@gmail.com
merci pour la rép.
...
Post by m***@gmail.com
En monoposte cela fonctionne très bien, mais quand 2 utilisateurs
différents choisissent au même moment
sur 2 navigateurs différents l'un "livres policiers" et l'autre
"livres de sf" il y a erreur.
Au début je pensais que c'est parce qu'ils partageaient le fichier XML
au même nom.
et donc je crois qu'une autre hypothèse est vérifiée : c'est dans
l'accès à la base que se produit l'erreur. Peut être que le serveur
mySql est mécontent de recevoir ces 2 requêtes ensemble....
Christophe Meresse
2008-04-28 09:07:13 UTC
Permalink
Post by m***@gmail.com
sur un evenement, on lance un fichier PHP qui lui-même écrit et
formate
un fichier XML qui doit être différent pour chaque valeur de la
combobox choisie.
J'avais pensé utilisé des identifiants de session à rajouter au nom du
fihier xml pour que chaque utilisateur
qui a choisi sa propre valeur dans la combobox voit bien son propre
fichier (et pas celui du voisin).
Mais ça ne suffit pas apparemment.
Il faut utiliser des verrous, des files d'attente ?? car le fichier
PHP lui porte toujours le même nom
Comment cela fonctionne t'il ? Est-ce que flock est une bonne piste ?
Si ton php ecrit le fichier xml sur le disque du serveur avant de
donner la possibilité à l'utilisateur de le récuperer, il faut
effectivement verifier qu'il ne se fait pas ecraser par l'autre
session en lui donnant effectivement comme tu l'as fais un nom unique.
En dehors de ca je ne vois aucune raison valable pour qu'un problème
apparaisse.
Tu peux aussi faire que ton script php renvoie directement une réponse
au format html (sans passer par une écruture sur disque) dans ce cas,
plus de problème de nom de fichier.

Pour flock, si tu parle du browser, il n'y a aucune raison que ça
résolve ton problème.

Christophe
Christophe Meresse
2008-04-28 15:53:26 UTC
Permalink
Post by Christophe Meresse
Post by m***@gmail.com
sur un evenement, on lance un fichier PHP qui lui-même écrit et
formate
un fichier XML qui doit être différent pour chaque valeur de la
combobox choisie.
J'avais pensé utilisé des identifiants de session à rajouter au nom du
fihier xml pour que chaque utilisateur
qui a choisi sa propre valeur dans la combobox voit bien son propre
fichier (et pas celui du voisin).
Mais ça ne suffit pas apparemment.
Il faut utiliser des verrous, des files d'attente ?? car le fichier
PHP lui porte toujours le même nom
Comment cela fonctionne t'il ? Est-ce que flock est une bonne piste ?
Si ton php ecrit le fichier xml sur le disque du serveur avant de
donner la possibilité à l'utilisateur de le récuperer, il faut
effectivement verifier qu'il ne se fait pas ecraser par l'autre
session en lui donnant effectivement comme tu l'as fais un nom unique.
En dehors de ca je ne vois aucune raison valable pour qu'un problème
apparaisse.
Tu peux aussi faire que ton script php renvoie directement une réponse
au format html (sans passer par une écruture sur disque) dans ce cas,
Hum, je voulais dire au format XML, bien sûr.

Christophe

Continuer la lecture sur narkive:
Loading...