Variables dynamique

Invité
Invité n'ayant pas de compte PHPfrance

23 août 2005, 04:03

Pourquoi ce code ne fonctionne pas sur un Mac ??
Ya t-il une solution ?? MERCI :)
<?php       
// SECTION MENU 
// Déclaration des variables pour les menus du site 
$menu = $_GET['menu']; 
$main = 'http://monsite.com/include/fr/variables/menu.txt';// menu principal 

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

EtienneV
Invité n'ayant pas de compte PHPfrance

23 août 2005, 04:10

DÉSOLÉ... cé moi qui est fait une erreur... lol ne tenai pas compte de ce reply

merci

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

23 août 2005, 15:06

Est-ce que tout fonctionne comme tu veux ?
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

EtienneV
Invité n'ayant pas de compte PHPfrance

23 août 2005, 19:36

Comment faire pour que dans ce petit bout de code, si un utilisateur enlève des variables dans sa barre d'adresse autre que le lien complet afin d'afficher les bonnes variables... EN FAIT: Si le client modifi l'adresse, il doit etre redirigé (auto refresh avec la bonne adresse)

MERCI!!
<?php       
// SECTION PAGE 
// Déclaration des variables pour les pages du site 
$id = $_GET['id']; 
$one = 'http://monsite.com/1082/include/fr/variables/page/one.txt';// page one 
$two = 'http://monsite.com/1082/include/fr/variables/page/two.txt';// page two 

// SECTION AFFICHAGE POUR LE VISITEUR 
if($id == 'one'){// page one 
include($$id); 
}
if($id == 'two'){// page two 
include($$id); 
}
?>

Mammouth du PHP | 1885 Messages

23 août 2005, 19:46

Bonjour,

Pourquoi tiens-tu absolument à utiliser les variables dynamiques ainsi que plusieurs tests imbriquées? Une variable tableau, une vérification de l'existence de l'index et un include du fichier récupéré à partir de l'index ferait entièrement le travail. En plus, si l'index n'existe pas, tu peux inclure un fichier par défaut ou faire une redirection.
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

EtienneV
Invité n'ayant pas de compte PHPfrance

23 août 2005, 19:51

Bonjour,

Une variable tableau, une vérification de l'existence de l'index et un include du fichier récupéré à partir de l'index ferait entièrement le travail. En plus, si l'index n'existe pas, tu peux inclure un fichier par défaut ou faire une redirection.
Tu as un exemple de ce que tu avances ??
Moi j'utilise ce code imbriqué parce que je ne connais pas assé le php pour utilisé d'autre code... Ce script fait la job donc j'ai pris celui-ci, mais s'il y à mieu... tant mieu :)

Merci !!

Mammouth du PHP | 1885 Messages

23 août 2005, 19:55

Bonjour,

J'ai déjà apporté un élément de réponse dans mes messages précédents:
<?php      
// SECTION MENU
// Déclaration des variables pour les menus du site
$menu = isset($_GET['menu']) ? $_GET['menu'] : NULL;
$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]);
} else {
    include('default.txt');
}
?>
Ceci permet d'afficher le fichier à rapport au paramètre GET (menu) comme les scripts précédents.
Les fichiers possibles sont contenus dans la variable tableau $Amenu. De cette manière, on rassemble dans un endroit unique toutes les possiblités.
Ensuite, on vérifie que le paramètre GET (menu) existe bel et bien dans le tableau et on inclue le fichier qui y correspond.
Dans le cas contraire, on inclue un fichier par défaut.
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Invité
Invité n'ayant pas de compte PHPfrance

23 août 2005, 20:12

J'ai testé le code mais j'arrive toujours au fichier par défaut dans le "else".

Je ne sais pas ce que je fais de pas correct....
Voici le lien que j'utilise: www.monsite.com/get.php?menu=one

avec ce code:
<?php       
// SECTION MENU 
// Déclaration des variables pour les menus du site 
$menu = isset($_GET['menu']) ? $_GET['menu'] : NULL; 
$Amenu = array( 
    'one' => 'http://monsite.com/1082/include/fr/variables/page/one.txt', // menu principal 
    'two' => 'contenu.txt', 
    'tree' => 'liste_memrbes.txt' 
); 

// SECTION AFFICHAGE POUR LE VISITEUR 
if (in_array($menu, $Amenu)) { 
    include($Amenu[$menu]); 
} else { 
    include('default.txt'); 
} 
?>

Mammouth du PHP | 1885 Messages

23 août 2005, 20:27

Bonjour,

J'ai commis une erreur. Il faut utiliser la fonction array_key_exists() à la place de in_array():
<?php       
// SECTION MENU
// Déclaration des variables pour les menus du site
$menu = isset($_GET['menu']) ? $_GET['menu'] : NULL;
$Amenu = array(
    'one' => 'http://monsite.com/1082/include/fr/variables/page/one.txt', // menu principal
    'two' => 'contenu.txt',
    'tree' => 'liste_memrbes.txt'
);

// SECTION AFFICHAGE POUR LE VISITEUR
if (array_key_exists($menu, $Amenu)) {
    include($Amenu[$menu]);
} else {
    include('default.txt');
}
?>
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

EtienneV
Invité n'ayant pas de compte PHPfrance

23 août 2005, 20:35

Salut...
j'ai testé le code mais avec la fonction array_key_exist sa ne fonctionne pas.

Quand je met ce code, array_key_exist il reste de couleur noir au lieu de bleu ?!?

J'utilise l'extension .php, est-ce correct ??

Merci !

Mammouth du PHP | 1885 Messages

23 août 2005, 20:40

Bonjour,

Je viens de tester chez moi et tout fonctionne. Y-a-t-il un message d'erreur ou quelque chose du genre?
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

EtienneV
Invité n'ayant pas de compte PHPfrance

23 août 2005, 20:48

Salut,

J'utilise ce lien: http://monsite.com/get.php?menu=one

Au lieu de me donner le fichier one.txt, il me retourne toujours le fichier default.txt

Ne devrais-je pas utiliser l'extension .php3 ou 4 ??
Merci...

Mammouth du PHP | 1885 Messages

23 août 2005, 20:50

Bonjour,

Vraiment étrange... Je ne sais pas trop quoi dire puisqu'après avoir moi-même essayé, tout fonctionne... Ta version de PHP est bien supérieure à 4.1.0?
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

EtienneV
Invité n'ayant pas de compte PHPfrance

23 août 2005, 22:43

HÉHÉ !!

Merci sa fonctionne bien... té un génie !!

Je voudrais maintenant, aulieu d'afficher un fichier par défaut, j'aimerais rediriger le client vers une url...

Merci de modifier le code pour moi :):):)
C'étais la dernière modification que j'ai besoin.

A+

Mammouth du PHP | 1885 Messages

23 août 2005, 22:47

Bonjour,

La fonction header() permet d'envoyer des entêtes HTTP et donc, des redirections:
header('Location: default.txt');
La programmation est l'expression de la poésie d'un programmeur
Génération PHP