[Résolu] Strings remplacées par "p"

Strings remplacées par "p" [Résolu] - PHP - Programmation

Marsh Posté le 06-04-2010 à 22:17:10    

Bonjour,
Je suis confronté au soucis suivant, ma page contient le code suivant:

Code :
  1. <?php include('menu.php');
  2.  $page["presentation"]="presentation.php";
  3.  $page["programmation"]="programmation.php";
  4.  $page["acces"]="acces.php";
  5.  $page["volontariat"]='volontariat.php';
  6.  $page["partenaires"]='partenaires.php';
  7.  echo $_GET["page"];
  8.  echo $page[$_GET["page"]];
  9.  if (!isSet($page[$_GET["page"]])) include('presentation.php');
  10.  else include($page[$_GET["page"]]);
  11.  include('footer.php');
  12. ?>


Qui marche parfaitement chez moi, mais lorsque je le transfert sur mon ftp Free, foire misérablement.
Voila ce que j'obtiens chez moi:

Code :
  1. //menu.php affiché correctement  
  2. presentationpresentation.php
  3. //footer.php affiché correctement


Et voila ce que j'obtiens sur le ftp de free:

Code :
  1. //menu.php affiché correctement  
  2. presentationp
  3. Warning: main(p) [function.main]: failed to open stream: No such file or directory in /mnt/102/sdb/e/a/loreilledauphine/mrn2010/index.php on line 23
  4. Warning: main() [function.include]: Failed opening 'p' for inclusion (include_path='/mnt/102/sdb/e/a/loreilledauphine/include:.:/usr/php4/lib/php') in /mnt/102/sdb/e/a/loreilledauphine/mrn2010/index.php on line 23
  5. //footer.php affiché correctement


 
Et ce quelle que soit la valeur de la variable $_GET["page"] fournie dans l'url. Le contenu de $page[$_GET["page"]] devient systématiquement "p" :/
Merci.


Message édité par bibiwood le 07-04-2010 à 11:03:57
Reply

Marsh Posté le 06-04-2010 à 22:17:10   

Reply

Marsh Posté le 06-04-2010 à 22:41:26    

Belle faille  [:implosion du tibia]

Reply

Marsh Posté le 07-04-2010 à 10:47:47    

par hasard, la variable REGISTER_GLOBAL serait pas à ON sur le serveur de free?
Si oui, change le nom de ta variable de type tableau qui contient les noms des pages, genre :
$pages["presentation"] = "...";
$pages["..."] = "...";
...
 
Y'a peut-être une confusion entre la variable passée par GET et cette de ton tableau de pages :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 07-04-2010 à 10:51:15    


Merci je teste ca.

Reply

Marsh Posté le 07-04-2010 à 11:03:34    


C'est bon bon ca marche  :bounce:  
Merci beaucoup Rufo, c'était exactement ça le problème...
 
Vous pensez que le titre du topic est assez explicite ? Pour que des personnes rencontrant le même problème puissent rapidement trouvé une solution.

Reply

Marsh Posté le 07-04-2010 à 11:14:18    

Le pb du REGISTER_GLOBAL à ON/OFF est un grand classique et depuis qq années, on considère qu'il faut toujours le laisser à OFF (ou considérer que par défaut il l'est sur le futur serveur d'hébergement).
 
A lire :
http://forum.hardware.fr/hfr/Progr [...] 7565_1.htm
 
Edit : pas utile de modifier le titre de ton topic car la manifestation de REGISTER_GLOBAL à ON/OFF va dépendre complètement de la manière dont est codé le ou les scripts impliqués. Dans ton cas, c'est parce que t'as fait le choix malheureux de donner le même nom à une variable globale de type tableau et une autre provenant de GET. En gros, ton code faisait que ça prenait la première lettre de la chaîne de caractères contenue dans la variable "page" de GET. Comme un bon nombre commence par "p", t'as cru que ça serait toujours "p"...


Message édité par rufo le 07-04-2010 à 11:17:46

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed