Se connecter / S'enregistrer
Votre question

[Résolu] PHP, modifier un "include"

Tags :
  • Html
  • Programmation
Dernière réponse : dans Programmation
2 Janvier 2010 14:08:57

Bonjour,

je souhaiterais que les pages soient du style: index.php?page=train_simulator ou index.php?page=vbus ou un truc différent d'un chiffre, mon code étant:

  1. <div id="page">
  2. <?php
  3. if (isset($_GET['page'])) $numero=$_GET['page']; else $numero='1';
  4. require 'page'.$numero.'.html';
  5. ?>
  6. </div>


Pouvez-vous me dire quoi modifier ?

A+

Autres pages sur : resolu php modifier include

2 Janvier 2010 14:32:48

Modifie le titre de ton topic en premier sinon je clos.
Modifie le par quelque chose de plus explicite, les "aider moi" ne sont pas admis.
2 Janvier 2010 23:33:08

Salut,

  1. <?php
  2. $page = $_GET['page'].'.php';
  3. if (file_exists($page)) include_once($page);
  4. else include_once('page2.php');
  5. ?>
Contenus similaires
2 Janvier 2010 23:57:30

Salut,

merci, ça marche donc pour tous les noms ?

Et mes pages doivent s'appeler respectivement blabla.html etc .. ?

A+
3 Janvier 2010 00:33:33

Oui.

Sache que c'est dangereux, ça.

Imagine que je fasse ça:

"index.php?page=http://www.VIRUS_QUELCONQUE.com/monvirus"

Où monvirus serait une page html contenant un virus.

à moins que tu aies fais un switch ou une db contenant les pages autorisées.

De souvenir, il ne fallait pas des accolades à un "if"??

3 Janvier 2010 00:44:29

Bonsoir,

merci de tes infos, comment alors autoriser certaines pages et pas d'autres ?

A+
3 Janvier 2010 19:00:11

Tu peut les protégé par des .htacess
3 Janvier 2010 19:57:48

TGV6773 a dit :
Bonsoir,

merci de tes infos, comment alors autoriser certaines pages et pas d'autres ?

A+


Tu as le choix:

soit tu entres tes pages autorisées dans une database, puis tu vérifies que la page demandée (contenue dans le $_GET['page'] ) se trouve bien dans ta DB avec une bête mysql_fetch-array. Solution simple si tu gères le SQL, même s'il présente toujours un danger: Le visiteur a la possibilité de trifouiller dans ta DB en changeant le GET dans sa barre d'adresse. Mauvaise idée si tu ne sais pas comment empêcher ça! (voir plus bas)



Sinon, plus long, tu fais un switch. Tu connais?

je ne me souviens plus de la syntaxe exacte, mais ça ressemble à ça
  1. Switch($_GET['page'])
  2. {
  3. case "index":
  4.  
  5. include 'index.html';
  6. break;
  7.  
  8. case "...":
  9. include '....html';
  10. break;
  11.  
  12. //etc... tu peux en ajouter autant que tu veux...
  13.  
  14. // en finissant par
  15.  
  16. default:
  17. // cas par défaut, au cas où rien n'est entré
  18. include "news.html"
  19. break;
  20. }



Cette technique a l'avantage de ne pas faire entrer dans la DB à partir d'un GET. Pour être honnête, c'est celle que j'utilisais quand je développais.


PS: Souviens-toi de ce précepte : NEVER TRUST HUMAN INPUT! (Ne fais jamais confiance en ce que l'utilisateur entre) Règle d'or quand tu développes: Dès que l'utilisateur a la Possibilité de modifier quoi que ce soit, protège toi par des fonctions prévues pour.
Je te conseilles de lire les manuels PHP (php.net) sur les fonctions :

addslashes; htmlentities; etc...


Bon courage ;) 

N'hésite pas à demander si tu coinces quelque part.


mick120 a dit :
Tu peut les protégé par des .htacess


Mick120: Et les rendre inaccessibles? Non...
3 Janvier 2010 20:18:25

Salut,

D'accord, c'est comme en VB.net, c'est un "select Case" ;) 

Je connais un peu ^^

Merci à toi
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS