Variables dynamique

EtienneV
Invité n'ayant pas de compte PHPfrance

22 août 2005, 21:28

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]

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

22 août 2005, 21:32

c'est normal ça :
echo $$menu;
:?:

Mammouth du PHP | 1885 Messages

22 août 2005, 21:36

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.
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

EtienneV
Invité n'ayant pas de compte PHPfrance

22 août 2005, 21:38

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.

Mammouth du PHP | 1885 Messages

22 août 2005, 21:42

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.
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

EtienneV
Invité n'ayant pas de compte PHPfrance

22 août 2005, 21:52

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;
}
?>

Mammouth du PHP | 1885 Messages

22 août 2005, 21:57

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.
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

EtienneV
Invité n'ayant pas de compte PHPfrance

22 août 2005, 22:08

(bien que l'exemple donnée soit totalement nul et non conseillé dans une situation réelle.
Et pourquoi non conseillé ??

Mammouth du PHP | 1885 Messages

22 août 2005, 22:14

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)
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

EtienneV
Invité n'ayant pas de compte PHPfrance

22 août 2005, 22:50

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

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

22 août 2005, 23:28

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:

Mammouth du PHP | 1885 Messages

22 août 2005, 23:32

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.
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

22 août 2005, 23:40

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:

EtienneV
Invité n'ayant pas de compte PHPfrance

23 août 2005, 00:43

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+

Mammouth du PHP | 1885 Messages

23 août 2005, 01:43

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.
La programmation est l'expression de la poésie d'un programmeur
Génération PHP