Page 1 sur 3

Variables dynamique

Posté : 22 août 2005, 21:28
par EtienneV
Salut, je voudrais dans ce petit bout de code, un include...
Je m'explique:

À la ligne 8, normalement, la variable affiche le texte"menu principal"... Je voudrais insérer un include pour pouvoir afficher du texte dans un fichier txt. Pourquoi lorsque je fais un include, à la fin du texte afficher provenant du fichier txt, il m'ajoute toujours le chiffre 1 ?!?!?!?

Merci d'avance, si question, je vérifie les réponses très régulièrement.

Voici le code:

Code : Tout sélectionner

<?php // SECTION MENU // Déclaration des variables pour les menus du site $menu = $_GET['menu']; $main = 'menu principal';// menu principal // SECTION AFFICHAGE POUR LE VISITEUR if($menu == 'main'){// menu principal echo $$menu; } ?>
[/code]

Posté : 22 août 2005, 21:32
par ouckileou
c'est normal ça :
echo $$menu;
:?:

Posté : 22 août 2005, 21:36
par Xenon_54
Bonjour,
c'est normal ça :
echo $$menu;
:?:
Lis le titre... C'est normal puisqu'il vient de le dire dans son titre.
http://www.php.net/manual/fr/language.v ... riable.php

Peut-on avoir un exemple de valeur GET? Car normalement, si menu vaut main, "menu principal" devrait s'afficher.

Posté : 22 août 2005, 21:38
par EtienneV
echo $$menu;
Oui c'est normal...
moi la seule chose que je veux faire c'est
$main = include("url de mon fichier txt);// menu principal
¨
ça fonctionne mais pourquoi j'ai toujours le chiffre 1 qui s'ajoute à la fin. Pourtant je n'ais pas le chiffre "1" à qulconque endroit...

????????
Merci.

Posté : 22 août 2005, 21:42
par Xenon_54
Bonjour,

Tu as donc modifié le code donné en exemple à rapport à celui utilisé?
Comment veux-tu qu'on t'aide alors si l'exemple et la réalité sont différents?

Lis la documentation et tu verras qu'il est normal que include() retourne 1:
http://www.php.net/manual/fr/function.include.php

Dans l'exemple 16-38:
$bar = include 'noreturn.php';
$bar a la valeur de 1 car l'inclusion était réussie.

Posté : 22 août 2005, 21:52
par EtienneV
Voici de nouveau le code mais modifié:
À la ligne 5, au lieu de mettre du texte, j'ai mis un include.
Je sais maintenant que la valeur 1 se r'ajoute parce que l'inclusion a été réussis... Mais de quel façon je peu contourné la valeur pour qu'elle ne s'affiche PAS !!

Merci... je commence en php.
<?php	  
// SECTION MENU 
// Déclaration des variables pour les menus du site
$menu = $_GET['menu'];
$main = include(mon url vers mon fichier);// menu principal

// SECTION AFFICHAGE POUR LE VISITEUR
if($menu == 'main'){// menu principal 
    echo $$menu;
}
?>

Posté : 22 août 2005, 21:57
par Xenon_54
Bonjour,

Pourquoi tu ne fais pas plutôt ça?
<?php      
// SECTION MENU
// Déclaration des variables pour les menus du site
$menu = $_GET['menu'];
$main = 'menu_principal.txt';// menu principal

// SECTION AFFICHAGE POUR LE VISITEUR
include($$menu);
?>
Ou quelque chose de ce genre. (bien que l'exemple donnée soit totalement nul et non conseillé dans une situation réelle.

Posté : 22 août 2005, 22:08
par EtienneV
(bien que l'exemple donnée soit totalement nul et non conseillé dans une situation réelle.
Et pourquoi non conseillé ??

Posté : 22 août 2005, 22:14
par Xenon_54
Bonjour,

Si j'entre une valeur (autre que main) qui n'existe pas l'include ne fonctionnera plus.

Tu pourrais alors essayer:
<?php      
// SECTION MENU
// Déclaration des variables pour les menus du site
$menu = $_GET['menu'];
$Amenu = array(
    'main' => 'menu_principal.txt', // menu principal
    'contenu' => 'contenu.txt',
    'membres' => 'liste_memrbes.txt'
);

// SECTION AFFICHAGE POUR LE VISITEUR
if (in_array($menu, $Amenu)) {
    include($Amenu[$menu]);
}
?>
Ceci te permettrait de vérifier que la valeur de menu possède bel et bien un fichier associé à celle-ci. Mais bon, selon moi, la méthode des pseudo-frames (puisque ce sont des pseudo-frames) n'est pas très intéressantes... (pour moi)

Posté : 22 août 2005, 22:50
par EtienneV
Mais bon, selon moi, la méthode des pseudo-frames (puisque ce sont des pseudo-frames) n'est pas très intéressantes... (pour moi)
Tu proposes quoi comme autre possibilité ??

Et merci beaucoup en passant pour ton aide

Posté : 22 août 2005, 23:28
par ouckileou
Lis le titre... C'est normal puisqu'il vient de le dire dans son titre.
http://www.php.net/manual/fr/language.v ... riable.php
j'ai lu le titre effectivement, mais j'ai pas bien compris à quoi ça servait dans le cas présent...

à part ça ça t'arrive d'être aimable ? :roll:

Posté : 22 août 2005, 23:32
par Xenon_54
Bonjour,

Je trouve étrange qu'il dit avoir bien lu le titre et poser quand même la question sur la présente de $$menu. Et après avoir relu mon message, je ne vois pas pourquoi tu te faches. Je n'ai pas été vulgaire ni déplacé. Je dis même bonjour avant d'écrire mon message. Que veux-tu de plus?

Quant à une solution alternative, j'utilise personnellement deux fichiers header et tailer pour chacun de mes fichiers. Ces deux fichiers représentent chacun l'entête et le pied de page du site.

Posté : 22 août 2005, 23:40
par ouckileou
Je trouve étrange qu'il dit avoir bien lu le titre et poser quand même la question sur la présente de $$menu.
J'ai lu le titre, j'ai vu la variable dynamique, je me suis demandé à quoi ça servait ici, l'énoncé du problème ne me parlait pas...
Je suis peut-être passé vite, sans trop réfléchir et ma question était peut-être mal formulée voir carrément idiote d'accord
Et après avoir relu mon message, je ne vois pas pourquoi tu te faches. Je n'ai pas été vulgaire ni déplacé. Je dis même bonjour avant d'écrire mon message. Que veux-tu de plus?
Je ne me fâche pas, mais bon je trouve la réponse un peu sèche, comme beaucoup d'autres que tu as faite
C'est vrai, c'est pas vulgaire ni déplacé et il y a le bonjour... mais bon

Après, désolé si j'interprète mal

++

[édition]
et même en relisant le début du sujet, je ne vois pas trop le rapport entre l'include, la variable dynamique... c'est pas clair, bravo à toi d'avoir deviné ;)
la prochaine fois je poserai mieux mes questions... :roll:

Posté : 23 août 2005, 00:43
par EtienneV
Si vous avez juste ça à faire vous pogner sur mon POST... aller voir ailleur svp.

Merci encore pour les infos des codes, sa fonctionne bien.

A+

Posté : 23 août 2005, 01:43
par Xenon_54
Bonjour,
Merci encore pour les infos des codes, sa fonctionne bien.

A+
C'est le plus important. Reviens nous voir si tu as encore besoin d'aide, nous tacherons d'être plus "civilisé" la prochaine fois.