Menu et include en php

drav41

Habitué
Heps!!

Je tente de faire un menu en php. Lorsque je presse une rubrique, les sous-rubriques doivent apparaître.

ça devrait me donner un truc comme

<?
if ($menu == "presentation") {
?>
<table>
...
</table>
<?
};
?>

il me met variable indéfinie! C logique mais faut que je l'initialise et c'est là que j'ai du louper un chapitre... :cry:

et après, je dois faire que la page s'affiche au milieu (g mis une include)

Quelqu'un a-t-il une idée?!? :(

merci :merci:
 

Xav_

Expert
[cpp]
if (!isset($menu) || $menu=='')
{
$menu=='presentation';
}
[/cpp]
tu rajoute ça avant ton code, donc si le visiteur n'a pas encore cliqué sur qqchose, la variable $menu n'existe pas encore, donc tu la regle par défaut sur "presentation" (ou la rubrique de ton choix)
 

Xav_

Expert
et comme il est gentil, il doit te donner le nom de la variable non définie, et meme la ligne ou tu t'en sert...
un peu plus de détail sur l'erreur et un plus de ton code également ça pourrait peut etre nous aider ;)

et puis en plus ça doit jsute etre un NOTICE, donc dans ton php.ini tu regarde que tu as:
[cpp]error_reporting = E_ALL & ~E_NOTICE[/cpp]
et non pas :
[cpp]error_reporting = E_ALL[/cpp]
mais ça serait quand meme plus propre de trouver la variable en question et de tester qu'elle existe (voir l'initialiser) avant de t'en servir

Voilou ;)
 

drav41

Habitué
Tu vas pas aimer ce qui va suivre...

Je ne suis pas vraiment spécialiste du php. A vrai dire, je rame un peu...
En fait, je pensais que j'étais pas obligé d'avoir un php.ini ?! :??:

Mon erreur, ça donne ça:

[cpp]Notice: Undefined variable: menu in c:\program files\easyphp1-7\www\ffa\index.php on line 36
Accueil
Présentation
Organes

Notice: Undefined variable: menu in c:\program files\easyphp1-7\www\ffa\index.php on line 50

Formation
Sociétés affiliées

Notice: Undefined variable: menu in c:\program files\easyphp1-7\www\ffa\index.php on line 73

[/cpp]

voili :(
 

Xav_

Expert
tu as un fichier php.ini dans le répertoire ou tu as installé apahce, c'est dans ce fichier que tu dois mettre la valuer que je t'ai expliqué plus haut...

Comme annoncé ce ne sont que des NOTICE...
 

drav41

Habitué
C'est fait, je l'ai placé dans le dossier php.ini

merci :merci: :merci:

Mais faut que je trouve encore comment initialiser ma variable ;)
 

Xav_

Expert
les serveurs en ligne ont le meme réglage, il n'affiche pas les Notices non plus, donc quand tu mettra ton site online, tu n'aura pas plus d'erreur qu'en local.

Mais tu as raison de vouloir tout de meme faire un code propre (avec initialisation des variables), pour cela le bout de code que je t'ai filer doit marcher, tu check l'existance de la variable (avec isset), s'il elle n'existe pas, tu lui affecte une valeur par défaut.

en PHP la déclaration est implicite, quand tu affecte une valeur à une variable qui n'existe pas, ça la déclare en meme temps.
Par contre, si tu teste sa valeur et qu'elle n'existe pas, là ya:
"Notice: Undefined variable: la_variable "

Donc tjs affecter une valeur par défaut aux variables si elle n'existe pas.

Pour info, isset($var) renvoi True si la variable existe et False si elle n'a jamais été déclarée... tu vois ce qu'il te reste à faire ;)
 

drav41

Habitué
Merci de ta patience :merci:

Sans toi, j'aurais mal fini...
Vous devez être connecté pour voir les images.



ben maintenant, je sais ce qu'il me reste à faire ... :D
 

didiboy

Habitué
dans ton script :
<?
error_reporting(E_ALL & ~E_NOTICE);
?>
normalement ca passe outre la config du php.ini
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 134
Messages
6 718 054
Membres
1 586 393
Dernier membre
mathhh28
Partager cette page
Haut