Page 1 sur 1

problème de définition de variable

Posté : 18 sept. 2010, 21:03
par moulek
Bonjour,
Je travail sur un site en local avec easyphp, donc tout marchait très bien, puis j'ai décidé de travailler sur un autre pc, j'ai donc installer easyphp sur cet autre pc et j'ai fais un copié/collé de mon site. Et là plus rien ne marche, en fait le problème vient de la définition d'une variable. J'ai une variable link qui est défini comme tel : localhost/index.php?link=test et donc là j'inclus la page test.php dans mon index.

Voilà mon code qui se trouve au milieu de index.php
                <?php
if ($link == "acc") {
  require ('acc.php');
} 
elseif ($link == "faq") {
  require ('faq.php');
} 
elseif ($link == "reglement") {
  require ('reglement.php');
} 
elseif ($link == "commentaires") {
  require ('commentaires.php');
} 
elseif ($link == "nous") {
  require ('nous.php');
} 
elseif ($link == "verif") {
  require ('verif.php');
} 
elseif ($link == "merci") {
  require ('merci.php');
} 
else{
require ('erreur.php');
}
?>
et là dans l'explorateur plus rien ne marche il me dit "Notice: Undefined variable: link" alors que tout marchait très bien sur mon autre pc....

Re: problème de définition de variable

Posté : 18 sept. 2010, 21:13
par Ryle
C'est une question de configuration du serveur (register global et/ou l'affichage des avertissements).

Tu peux modifier la configuration du php.ini de ton nouveau pc, mais le plus propre serait de rendre ton code compatible quelque soit la conf du serveur. Pour cela il faut préciser l'origine de la variable que tu utilises à php : si celle-ci provient de l'url utilises $_GET['link'] au lieu de $link. De même si elle a été envoyée par la méthode post d"un formulaire, il faut utiliser $_POST. De même pour $_SESSION ou $_COOKIE pour faire référence à une variable déclarée dans la session ou dans un cookie :)

Re: problème de définition de variable

Posté : 18 sept. 2010, 21:18
par moulek
Merci ça marche parfaitement.
Juste par curiosité, sans paser par GET, est-ce que tu sais ce que j'aurais dût modifier dans php.ini ?

edit : également merci pour les formulaires cookies et sessions

Re: problème de définition de variable

Posté : 18 sept. 2010, 21:35
par Ryle
A priori c'est la directive register_globals qui doit être à off sur le nouveau pc. Elle est désacivée par défaut dans les dernière version de php pour des raison de sécurité et va même disparaitre avec php 6. Tu peux la modifier, mais il vaut mieux prendre l'habitude de préciser l'origine des valeurs que tu utilises dès maintenant ;)

Re: problème de définition de variable

Posté : 18 sept. 2010, 21:53
par moulek
Oui et c'est beaucoup plus pratique,logique.
Non en fait je demandais car je trouvais ça bizarre puisqu'il ne m'avait pas semblé avoir modifié cette ligne dans le php.ini de mon autre pc, je devais avoir une version plus ancienne d'easyphp.
Merci beaucoup pour tes réponses