Bloquer dans une barre de navigation en php

Résolu
Bonjour quand j'ai créer cette fonction pour la barre de navigation.

Puis j'ai la définit...


Il me donne ça.

on m'a dit d'ajouter la fonction end j'ai fait ça ne donne rien... php a dit le problème vient dans la ligne 576

2 réponses

  1. Modérateur
    Bonjour,

    Déjà... lorsque tu veux nous mettre une image (du message d'erreur...).. il existe une solution plus propre (et plus lisible) qu'une photo prise avec ton smartphone...;c'est la fonction "imprime écran" de ton ordi.....

    Ensuite, pour poster ton code sur le forum... merci de le faire en utilisant les balises de code
    (explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code )
    par ce que là .. non seulement on a pas le message d'erreur complet... mais on ne peut pas non plus copier/coller ton code et je n'ai pas envie de devoir le retaper à la main pour te répondre !

    1. Bjr voici mon code PHP
           <div class="navbar">
                      <a class="<?= set_active('index'); ?>" href="<?= WEBSITE_NAME_URL ?>">Accueil</a> |
                      <a class="<?= set_active('signup'); ?>" href="<?= WEBSITE_NAME_URL ?>/inscription">Inscription Gratuit</a> |
                      <a class="<?= set_active('signin'); ?>" href="<?= WEBSITE_NAME_URL ?>/connection">Se Connecter</a> |
                      <a class="<?= set_active('add_photos'); ?>" href="<?= WEBSITE_NAME_URL ?>/add_photos">Ajouter Photos</a> |
                      <a class="<?= set_active('profil'); ?>" href="<?= WEBSITE_NAME_URL ?>/profil">Profil</a> |
                      <a class="<?= set_active('parametre'); ?>" href="<?= WEBSITE_NAME_URL ?>/parametre">Paramètre</a>
                  </div>
      

      Puis j'ai créer la fonction set_active()
       // Gérer l'état actif de tous nos liens
      if (!function_exists('set_active')) {
      	function set_active($file, $class = 'active')
      	{
      		$page = array_pop(explode('/', $_SERVER['SCRIPT_NAME']));
      		if ($page == $file.'.php') {
      			return $class;
      		} else {
      			return "";
      		}
      	}
      }
      

      et ca m'a donné une erreur tel que:
          <div class="navbar">
                      <a class="<br />
      <b>Notice</b>:  Only variables should be passed by reference in <b>C:\Program Files (x86)\EasyPHP-Devserver-17\eds-www\djasporaLove\includes\functions.php</b> on line <b>16</b><br />
      active" href="http://127.0.0.1:8080/djasporaLove">Accueil</a> |
                      <a class="<br />
      <b>Notice</b>:  Only variables should be passed by reference in <b>C:\Program Files (x86)\EasyPHP-Devserver-17\eds-www\djasporaLove\includes\functions.php</b> on line <b>16</b><br />
      " href="http://127.0.0.1:8080/djasporaLove/inscription">Inscription Gratuit</a> |
                      <a class="<br />
      <b>Notice</b>:  Only variables should be passed by reference in <b>C:\Program Files (x86)\EasyPHP-Devserver-17\eds-www\djasporaLove\includes\functions.php</b> on line <b>16</b><br />
      " href="http://127.0.0.1:8080/djasporaLove/connection">Se Connecter</a> |
                      <a class="<br />
      <b>Notice</b>:  Only variables should be passed by reference in <b>C:\Program Files (x86)\EasyPHP-Devserver-17\eds-www\djasporaLove\includes\functions.php</b> on line <b>16</b><br />
      " href="http://127.0.0.1:8080/djasporaLove/add_photos">Ajouter Photos</a> |
                      <a class="<br />
      <b>Notice</b>:  Only variables should be passed by reference in <b>C:\Program Files (x86)\EasyPHP-Devserver-17\eds-www\djasporaLove\includes\functions.php</b> on line <b>16</b><br />
      " href="http://127.0.0.1:8080/djasporaLove/profil">Profil</a> |
                      <a class="<br />
      <b>Notice</b>:  Only variables should be passed by reference in <b>C:\Program Files (x86)\EasyPHP-Devserver-17\eds-www\djasporaLove\includes\functions.php</b> on line <b>16</b><br />
      " href="http://127.0.0.1:8080/djasporaLove/parametre">Paramètre</a>
                  </div>
      

      Aide moi à résoudre cette erreur SVP
    2. Contributeur
      @Oge_1997bonjour, peux-tu partager le contenu du fichier functions.php?
      pourquoi utilises-tu function_exists()?
    3. Merci à toi aussi mon pote...
      Mon problème est résolu
  2. Bonjour,

    Le problème vient de ton usage de la fonction array_pop.
    Si on regarde la doc : https://www.php.net/array-pop
    On constate qu'elle attend en paramètre une référence à un tableau.
    Ainsi, il n'est pas possible de composer son appel avec une fonction qui retourne un tableau, comme tu le fais.
    Ce n'est pas dur à contourner, il suffit de faire ton appel en deux fois :
    		$tab = explode('/', $_SERVER['SCRIPT_NAME']);
    		$page = array_pop($tab);
    


    Xavier
    1. Merci à toi mon pote...
      Mon problème est résolu