[PHP] Includes & get

Résolu/Fermé
astrasitah - 15 janv. 2009 à 20:09
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 - 15 janv. 2009 à 21:04
Bonjour,
Je travaille actuellement sur un projet de site, et j'ai quelques problèmes que je n'arrive pas à résoudre :

Un affichage sera plus pratique que un gros résumé =)
J'ai d'abord pensé à ceci :
<?php
if('$_GET["id"] == ""'){
$id = "index";
}
else {
$id = $_GET["id"];
};
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="includes/template/style.css" />
</head>
<body>
<div id="contenu"><?php include "('./includes/pages/".$id.".php')"; ?></div>
</body>
</html>

Je suis par exemple sur index.php?id=XX;
Je teste si la variable id en get contient quelques chose, si rien j'affiche ./includes/pages/index.php
Si il contient autre chose j'affiche ./includes/pages/XX.php
Sachant que mon site comporte une 50ène de page je vais pas faire un switch x).
Et le code si dessus renvoit un code d'erreur, le même quelque soit l'id.

Que doit-je faire ?
merci :)
A voir également:

4 réponses

ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
15 janv. 2009 à 20:13
l'erreur, qui est...

faire un switch, c'est pas pour faire joli, si tu laisse ton site comme, il y a une faille énorme de sécurité.
0
muska92 Messages postés 277 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 14 août 2009 42
15 janv. 2009 à 20:14
essai plutôt ca :

<?php

if(!isset($_GET["id"]) | $_GET["id"] == ""){

$id = "index";
}
else {

$id = $_GET["id"];
};
?>

puis faut penser sécuriser ton script :
exemple :
<?
if(files_existes(id.php) {
include('id.php');
}else {
inlude('erreur.php');
}
?>
enfin un truc comme ca
0
merci muska92 ! ca marche désormais =)
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 922
15 janv. 2009 à 21:04
salut,

moi pour les $_GET, je passe toujours par une validation par liste blanche.
je lis la discussion en me disant qu'il va falloir te dire de sécuriser ta moulinette.

muska92 le fait et te propose une technique que je n'avais pas envisagée, faut dire qu'ayant déjà un code qui tourne, je fais copier/coller au besoin, pas besoin d'aller chercher plus loin…

du coup je fais une petite recherche et je tombe sur ça.
moi qui me disait que j'allais économiser du code, il m'a plié ! du coup je garde ma liste !

les méthodes de blackhat c'est toujours encore plus vicieux que les pires trucs que t'imagines ! comment veux-tu dormir tranquille avec des sites en production et en sachant qui a des mecs aussi bons que ça sur la toile…
-:oD
0