8796 sujets

Développement web côté serveur, CMS

Bonjour,

J'essaie de créer une fonction qui me permettrait de récupérer le nom de la page affichée, puis via des conditions d'afficher ou non un lien dans un menu.

Le début de mon code :
  
function link($url) {
    if (strpos($_SERVER['PHP_SELF'], $url)===false) {
      echo '';
    } else {
      echo '<a href="[nom de la page].html">';
    }
  }


En suite j'appelle ma fonction dans mon menu ainsi :
a écrit :

<u l>
<li><?php link('mapage1') ?><span>Page1</span></a></li>
<li ><?php link('mapage2') ?><span>Page2</span></a></li>
<li ><?php link('mapage3') ?><span>Page3</span></a></li>
</u l>


Le but est que lorsque la page est affichée, le lien ne s'affiche pas dans le menu, mais les autres url doivent s'afficher

Mais là j'obtiens l'inverse ce que je voudrais avoir, mais je n'arrive pas à faire le contraire

Merci d'avance
Modifié par Gargamel (15 Jul 2009 - 16:43)
Modérateur
Bonjour Gargamel,


if (strpos($_SERVER['PHP_SELF'], $url)===false) { 
      echo '';


Actuellement, si je traduis ton code, cela dit : "Si je ne trouve pas la valeur de la variable $url dans la variable $_SERVER['PHP_SELF'], n'affiche rien." Ça ne devrait pas plutôt être le contraire?

Lire le manuel sur la fonction strpos. Il y a un exemple assez parlant.
Modifié par Tony Monast (15 Jul 2009 - 16:30)
Salut,
a écrit :
j'obtiens l'inverse ce que je voudrais avoir
C'est déjà surprenant que tu obtiennes quelque chose vu que PHP a déjà une fonction link. Logiquement, tu ne devrais pas pouvoir utiliser ce nom.
Merci d'avoir pris le temps

J'avais bien conscience que mon code était le contraire, j'avais un parse error dans l'autre sens (oubli bête de }) alors j'ai préféré mettre le code sain pour bien illustré ce que je voulais.

En tout cas c'est résolu Smiley cligne

@marcv : euh oui ça marche, mais bon pour éviter tout conflit postérieur je vais la renommer. Merci
Modifié par Gargamel (15 Jul 2009 - 16:44)