francoisch Posté 2 Novembre 2009 Posté 2 Novembre 2009 Bonjour Jutilise dans une page cette séquence de code pour plusieurs passages successifs : la variable compteur1 est initialisée dans du code Javascript sa valeur est récupérée dans la variable $compteur1 en Php par ce code : if (isset($_GET['compteur1']) == false) { echo "<script type=\"text/javascript\">\n"; echo " location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}"."&compteur1=\" + compteur1;\n"; echo "</script>\n"; exit(); } que javais trouvé dans un Forum. Problème : ça ne fonctionne correctement quau premier passage. En effet, lUrl reste identique aux passages suivants et la valeur retrouvée dans $compteur1 est toujours la même. J'ai essayé de supprimer la boucle du if / isset, mais justement, ça boucle. Merci par avance de vos suggestions. Francois
jcaron Posté 2 Novembre 2009 Posté 2 Novembre 2009 Si tu nous disais ce que tu cherches à faire exactement, on pourrait probablement te proposer une solution, parce que là c'est quand même bizarre, le code que tu donnes ne récupère rien du tout, mais force l'existence de la variable compteur1, mais qui ne contient rien. Il manque des bouts, et le but n'est pas trop clair... Jacques.
astrofiles Posté 2 Novembre 2009 Posté 2 Novembre 2009 Si tu nous disais ce que tu cherches à faire exactement, on pourrait probablement te proposer une solution, parce que là c'est quand même bizarre, le code que tu donnes ne récupère rien du tout, mais force l'existence de la variable compteur1, mais qui ne contient rien. Il manque des bouts, et le but n'est pas trop clair... Jacques. Bonjour, Je suis du même avis que jcaron, je pense que si tu nous disais ce que tu veux faire il y aurait surement moyen de ne pas passer par ce bout de code javascript/PHP un peu tiré par les cheveux au profit de quelque chose de plus propre Si tu retires ton if c'est normal qu'il boucle puisque le script semble se ressoumetre lui même indéfiniement...
francoisch Posté 2 Novembre 2009 Auteur Posté 2 Novembre 2009 bonjour L'objectif général d'abord: n'afficher dans une page Web un bouton pour appeler un logiciel que s'il est installé sur le PC. Ma fonction de test de la présence éventuelle d'un logiciel: function test_prog(exec) { var fso = new ActiveXObject("Scripting.FileSystemObject"); var ret=fso.FileExists(exec); fso=null; return ret; } (je ferai volontiers la même chose en Php si c'est possible). J'utilise cette fonction ici: <script type="text/JavaScript">var compteur1 = 0;if (test_prog("<?php echo $adresse; ?>")) { compteur1 = 1; // si le logiciel est détecté }</script><?php// ***** récupération en Php du résultat du testif (isset($_GET['compteur1']) == false) { echo "<script type=\"text/javascript\">\n"; echo " location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}"."&compteur1=\" + compteur1;\n"; echo "</script>\n"; exit(); }// ***** affichage du boutonif ($compteur1 > 0 ) { ?> <td align="center" width="<?php echo $pctbureautique ; ?>%"> <button type="button" onclick=" ....</button> </td> Voila, vous savez tout ou presque; j'utilise ce code plusieurs fois dans la même page pour détecter plusieurs logiciels. Cette récupération de variable JS fonctionne bien au premier passage mais plus ensuite aux passages suivants. A votre avis? Merci par avance de votre aide. Francois
jcaron Posté 2 Novembre 2009 Posté 2 Novembre 2009 Je te propose une méthode tellement plus simple: - tu fais une première page qui grosso-modo ne contient que du JS: tu vérifies la présence des fichiers qui vont bien, puis à la fin quoi qu'il arrive tu fais un redirect vers la deuxième page, en passant en paramètre les fichiers trouvés ou pas - et une deuxième page qui récupère ces paramètres, et voilà. Je pense que ce sera nettement plus simple à coder et à maintenir, sans se mélanger les pinceaux entre php et JS. En fait ton code met les deux pages sur une seule (la différence étant la présence ou non de la variable), mais ça n'a à mon avis qu'un intérêt limité, et ça complique le code pour pas grand chose. Si tu veux vraiment garder cette structure de code, il faut juste que tu testes l'ensemble de tes variables d'un coup et que tu les passes d'un coup, pas besoin de faire 150 redirects en ajoutant un petit bout à chaque fois. Jacques.
captain_torche Posté 2 Novembre 2009 Posté 2 Novembre 2009 Tu peux surtout TOUT faire en JavaScript, vu que le PHP ne sert qu'à afficher des boutons.
francoisch Posté 2 Novembre 2009 Auteur Posté 2 Novembre 2009 Vous avez surement raison. Simplement, j'avais une page existante, avec du code existant, et j'ai gréfé là-dessus un nouveau morceau de code sans remettre en question ce qui existait déjà. Oui, je vais retravailler tout ça pour éliminer le Php de l'histoire. Je vous dirai le résultat. Francois
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant