pb include avec variable

WRInaute discret
bonjour je souhaite faire un truc de ce genre là:

Code:
include("article.php?page=$id");
mais comme vous le savez l'inclusion de variable ne marche pas auriez vous une petite solution pour moi?
 
WRInaute impliqué
Ca me parait assez biscornu :roll:

qu'est ce que tu veux inclure exactement ? :?: et pour quoi faire ? des pseudo frames ?

A+
 
Nouveau WRInaute
Pas la peine de passer ta variable par le nom de fichier.
<?
$page=$id;
include("article.php");
?>
Ca devrait pourvoir marcher si c un fichier local
 
WRInaute discret
oui c'est pour faire des pseudos frames

la solution d'énoncer la variable avant est pas mal mais je suis pas sur que ça marche avec les pseudos frames si?
 
WRInaute impliqué
ben je connais pas trop les pseudo frame mais je ne pense pas que tu puisses passer le paramètre dans l'include effectivement ( rapport à php ...)

par contre la solution classique marche :

switch ($page)
{
case 'mapage1':
include('page_1.php');
break;
case 'mapage2':
include('page_2.php');
break;
case 'mapage3':
include('page_3.php');
break;
default:
include('accueil.php');
break;
}

A+ et bon courage
 
WRInaute impliqué
Quand tu inclues une page, dis toi qu'avec tu peux utiliser toutes les variables initialisées au tout début du script.
 
WRInaute discret
Xenon je peux pas utiliser ton script parce que comme c'est pour l'affichage d'article et que je risque d'en avoir très vite bcp, ça sera mortel! Par cotnre je teste de ce pas la solution de ApocalXnow j'y avais pas pensé merci à tous
 
WRInaute impliqué
ricotrutt a dit:
Xenon je peux pas utiliser ton script parce que comme c'est pour l'affichage d'article et que je risque d'en avoir très vite bcp, ça sera mortel! Par cotnre je teste de ce pas la solution de ApocalXnow j'y avais pas pensé merci à tous

s'il fonctionne mieux tu aurais tord de faire le contraire :lol:

A+
 
WRInaute impliqué
XenonDelee a dit:
Code:
switch ($page) 
{
case 'mapage1':
include('page_1.php');
break;
case 'mapage2':
include('page_2.php');
break;
case 'mapage3':
include('page_3.php');
break;
default:
include('accueil.php');
break;
}

Ou bien encore plus simple :

Code:
$id = '45';
include('article_'.$id.'.php');

Ce qui aura pour effet d'inclure le fichier "page_45.php". Comme ça, ça fonctionne quel que soit ton $id :)
Ensuite, peut-être qu'avec de l'url rewriting, tu peux transformer les url de type article_45.php en article.php?page=45 :wink: Je ne sais pas si ça fonctionne dans ce cas-là ?
 
WRInaute impliqué
laissons faire les pros :wink:

( comme comme l'optimisation du code n'est pas une chimère, ça existe :lol: )

A+
 
WRInaute impliqué
$id = '45';
include('article_'.$id.'.php');

Beaucoup plus simple mais beaucoup plus dangereux. Le premier guignol qui s'y connait pourra juste arriver à trouver sa première faille sur un site Web grâce à ça.
Le switch() n'est pas beaucoup plus lourd mais surtout beaucoup plus sécurisant
 
WRInaute occasionnel
Bon t'a plus qu'a nous donner ton adresse web et le premier guignol venu ira s'amuser comme un dingue :)
 
WRInaute impliqué
The Jedi a dit:
Beaucoup plus simple mais beaucoup plus dangereux. Le premier guignol qui s'y connait pourra juste arriver à trouver sa première faille sur un site Web grâce à ça.
Euh, je vois pas trop quelle faille on pourrait trouver là-dedans...si tu veux bien m'expliquer :) Car le switch pour une centaine d'articles, ça fait vite lourd !

Sinon, j'ai pensé à une autre soluce (pas testée) :

Code:
include("article.php?page=$id");

à remplacer par

$_GET['page'] = 'id_que_tu_veux';
include 'article.php';
 
WRInaute impliqué
Ben imagine qu'un mec joue avec l'URL et ne mette pas des ID d'articles mais du codes à exécuter. A chercher il trouvera et tu bénéficieras d'une superbe injection SQL ou d'un include de fichier qui peut dévoiler des données importantes (les pass notamment).

Si tu fais un include comme tu l'as montré, avant, fais ça :
Code:
$_GET['page'] = intval( $_GET['page'] );

Ca t'assureras que tu ne pourras attendre que des données numériques dans l'URL.
Normalement tu n'as pas besoin non plus de faire un switch de plusieurs centaines de choix ;) là c'est ta structure qu'il faut remettre en cause.
 
WRInaute impliqué
Oki, merci, je ne connaissais pas intval(); :)
Cela dit, ici, si j'ai bien compris, l'id de la page c'est toi qui le définit dans ta page, pas l'utilisateur via l'url...donc aucun risque qu'il bidouille dessus !
 
Discussions similaires
Haut