Comme beaucoup, j'utilise Apache/Php/Myssql pour développer des pages/scripts PHP en local avant de les envoyer sur le web. Tout récemment, je suis passé à WAMP serveur ô combien souple et efficace. A cette occasion, je me suis rendu compte que les arguments inclus dans les URL étaient pûrement et simplement ignorés. Je m'explique :
Par exemple, quand je tape pour URL test.php?un=avoir&deux=pasvu
Avec le script test.php suivant : <HTML> <BODY> <?PHP print("Paramètre un : ".$un); print(" deux : ".$deux); ?> </BODY> </HTML>
les variables $un et $deux ne sont pas initialisées avec les valeurs respectives avoir et pasvu. Les arguments passés dans l'URL sont ignorés. PHP me retourne simplement : Parmètre un : deux : Je travaille sous Windows XP/SP¨-2 et le Firewall doit être activé. Le phénomène est identique avec Easyphp 1.8 et WAMP 1.6.4. Je soupçonne qu'un quelconque service de Windows intercepte mon URL et shoote mes arguments. Quelqu'un aurait-il rencontré ce problème ou pourrait-il me dire d'où cela vient parce que j'ai beau me tritûrer les méninges, je ne trouve pas !
Merci pour la réponse. Avant avec Esayphp 1.6, ce genre de script fonctionnait sans avoir recours à ce tableau $_GET. En farfouillant dans les fichiers de configurations, n'y auarit-il pas moyen de se passer de ce tableau $_GET et que tout redevienne comme avant ?
C'est bon ! Grâce à la fonction $_GET, j'ai trouvé dans le manuel de PHP l'option à modifier dans le fichier php.ini. Pour avoir accès aux arguments de l'URL sans recourir à la fonction $_GET, il faut modifier le paramètre register_globals = On.
Peut-être cela servira-t-il à quelqu'un d'autre que moi ? Merci à tous !
idem pour moi, les paramètres passés avec $_GET sont ignorés, et pourtant j'ai bien la variable register_globals=on, et la je sais plus quoi faire sinon repasser à easyphp, ce qui serait dommage vu que wamp est nettement supérieur. Si quelqu'un pouvait m'aider, merci d'avance.
Alors, premièrement, il vaut mieux ne pas réactiver register_globals pour des raisons de sécurité. Je ne vais pas m'étendre, il y a plain d'articles là dessus sur le net mais en gros n'importe qui prut injecter des varaibles dans ton scripts, tu ne connais plus la source des entrée externes...(d'ailleurs register_globals devrait disparître avec PHP6).
Ensuite, pour muadib24, je pense que le pb vient de ton code. La passage de paramètres par get (url) ne devrait pas poser de pb, on va essayer de trouver ta solution ;-)
ci-dessous le code du fichier centre.php (pseudo-frames) :
<? if (empty($_GET['lien'])) { $_GET['lien'] = 'accueil'; } switch($_GET['lien']) { case 'venir': include('venir_ls.php'); break; case 'dispo': include('dispo_ls.php'); break; case 'sujets': include('sujets_ls.php'); break; case 'elevage': include('elevage_ls.php'); break; case 'el_aj': include('elevage_aj.php'); break; case 'actu': include('actualites_ls.php'); break; case 'resultats': include('resultats_ls.php'); break; case 'classes': include('classes_ls.php'); break; case 'ccsc': include('ccsc_ls.php'); break; default: include('vide.php'); } ?>
Salut, je réponds à ta question avec beaucoup de retard (tu as du trouver la solution depuis) mais si cela peut servir à quelqu'un autre..
Effectivement il faut garder les RG à OFF pour un tas de raison..
En début de tes Sripts (sur ta page de config. ou application_top par exemple enfin une page qui est lu par toutes tes pages ) tu ajoute simplement ceci :
<?php while (list($key, $val) = each($_GET)) {$$key=$val;} ?>
Avec ça toutes tes récup GET ou POST marcheront sans problème..