Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/02/2008, 12h09   #1
Invité de passage
 
Inscription : avril 2005
Messages : 15
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 15
Points : 0
Points : 0
Par défaut Choix de structure de page en PHP

Bonjour,

J'avais une petite question concernant les structures des sites effectués en php que l'on voit sur le web.

On voit donc les sites de "base",

avec par exemple :
www.toto.com/index.php
www.toto.com/moncompte.php

et on voit parfois aussi
www.toto.com/index.php
www.toto.com/index.php?page=moncompte

Quelle est la différence ? Dans la 2ème méthode, on inclut un code php selon le nom de la page demandée j'imagine... Pourquoi faire cela ?

Et surtout quels sont les avantages et inconvénients entre les 2 méthodes ?

Merci pour vos réponses !
steam_o_roll est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 12h26   #2
Membre éprouvé
 
Développeur Web
Inscription : avril 2005
Messages : 395
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 395
Points : 479
Points : 479
En ce qui concerne cette méthode il faut redoubler de vigilance pour ne pas se retrouver avec des problèmes de sécurité lors des includes.

ça permet d'une certaine manière de structurer son site, de réaliser un goulet d'etranglement pour les requetes de fichier inconnus. Coupler avec de l'url rewriting c'est pas mal.
__________________
Zend PHP5 Certification
MySQL 4 Core Certification
Gats est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 12h58   #3
Invité de passage
 
Inscription : avril 2005
Messages : 15
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 15
Points : 0
Points : 0
Bonjour Gats,

"Réaliser un goulet d'etranglement pour les requetes de fichier inconnus. Coupler avec de l'url rewriting c'est pas mal."

Peux-tu m'expliquer plus en précision s'il te plait ce que tu entends par là ?

Quel est donc par exemple l'avantage qu'a cette méthode sur la méthode de "base" ?

merci
steam_o_roll est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2008, 11h57   #4
Membre actif
 
Avatar de bigltnt
 
Inscription : mars 2007
Messages : 221
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2007
Messages : 221
Points : 155
Points : 155
Dans ce cas, il est très probable que chaque vue du site (ou chaque page) soient une page .php différente. C'est simple a développer, bien qu'il doit y avoir beaucoup de redondance de code (merci le copier/coller, donc ...). Ca n'est pas très optimisé

Ici, il s'agit d'un script .php référent, qui est toujours appellé, les arguments passés en paramètres (page=moncompte) permettent de faire varier l'affichage (par exemple, ici on veut afficher la page 'moncompte', en appellant 'index.php'). On peut imaginer alors que dans index.php, on a un script du genre:

Code :
1
2
3
4
5
6
7
8
9
10
11
 
if(isset($_GET['page'])){
	switch($_GET['page']){
		case 'moncompte':
			include('./pages/moncompte.php');
			break;
		default:
			include('./pages/default.php');
			break;
	}
}
La page 'moncompte.php' ne contiendra donc que le traitement des informations de compte (et les header/footer, inclusions de fonctions, de paramètres, de sessions, etc ... sont laissés à la charge de index.php. Plus besoin de réécrire les informations sur chacun des scripts).

Pour l'URL rewriting, je n'y connais pas grand chose donc je ne peux pas t'expliquer. Par contre, quand Gats parle de "goulet d'étranglement blabla", il veut dire qu'il ne faut pas faire ceci:


Code :
1
2
3
4
5
6
7
8
 
if(isset($_GET['page'])){
	include('./pages/'.$_GET['page'].'.php');
	}
else{
        include('./pages/default.php');
}
}
Pourquoi ? Et bien comme on peut le retrouver dans un des articles de developpez.com, un visiteur malintentionné pourrait modifier simplement la variable 'page' dans l'url, pour la faire pointer vers un script php différent, qui pourrait meme etre sur un autre site (donc un script personnalisé du méchant visiteur, dans le but de récuperer des infos sensibles, et bien plus).

Donc il ne faut pas faire un include avec un paramètre en GET, mais traiter le paramètre en GET, qui si valide, permet l'inclusion d'un script (comme le premier exemple avec le SWITCH).

Voila j'espère avoir été clair

++
bigltnt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2008, 11h01   #5
Invité de passage
 
Inscription : avril 2005
Messages : 15
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 15
Points : 0
Points : 0
Merci bien pour l'explication !

C'est très clair maintenant.

Ah si une petite question en plus peu-être....

En ce qui concerne le référencement ! La méthode www.machin.php?page=truc

Ce n'est pas pénalisant ?
steam_o_roll est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h20.


 
 
 
 
Partenaires

Hébergement Web