OVH Cloud OVH Cloud

de l'interet des sites index.php?rub

46 réponses
Avatar
tlo2075
bonjour,

voila, j'ai constate que de nombreux sites font passer toutes leurs
pages par une seule page telle que index.php?rub=<x> ou <x> va etre
une multitude de chiffres... mais je ne comprends pas quel est
l'interet de l'approche ni meme comment cela fonctionne quelqu'un
pourrait il m'expliquer ou me pointer sur une url qui fait ca ?

merci bcp.

10 réponses

1 2 3 4 5
Avatar
Jean-Marc Molina
A condition que ces centaines de pages aient pour point commun d'être
statiques. C'est à dire du pure html.


On se sert plus de la base comme un vecteur pour « canaliser » le contenu et
l'information.
Le contenu peut être stocké sous la forme de fichier XML qui sont montés à
partir de gabarits XHTML/HTML par exemple.

La base sert parfois d'intermédiaire entre le site et les ressources. Les
images d'un portfolio sont sur le serveur mais la base s'occupe de les
organiser en catégories, des scripts accèdent à la base et génèrent les
pages du site à partir des gabarits... ce qui peut donner un site statique,
à visiter, au final. Gestion de contenu :).

JM

--
Boycothon (Contre l'e-censure) : http://www.odebi.org/boycothon/ ~ « Le LEN
tue la démocratie ».

Avatar
Savut
Moi je ne dirais qu'une chose que personne ne pourra rouspecter. En regle clair, on ne doit jamais passer les pages en parametre de
meme, on peut passer des variables mais pas les pages. D'abord pour des regles de securite, mais aussi pcq c'est pas elegant. Tout
le monde a des points de vue que je respecte tous mais en terme final, c'est pas une pratique conseille, alors pk passer notre a se
debattre avec ca alors qu'on sais bien qu'on ne programmera jamais de cette facon. C'est bien mieux une page hierarchise qui
include() l'entete et le pied-de-page qu'un site avec une page qui include() le body. Mod_rewrite est seulemetn une sorte de patch.

Sauf.... si on genere bcp de page statiques a partir d'un db, ou projet semblable. Il s'avere etre un gros avantage. Mais
permettez-moi d'ajouter que meme dans ce cas la, on peut faire autrement au lieu de passer la page en tant que telle, on pourrais
passer un id, pis il va chercher la page "$id.php" par exemple. Pardonnez-moi si j'offence qqun mais je pense que mon point de vue
est tres justifie.

Savut

"Tlo" wrote in message news:
bonjour,

voila, j'ai constate que de nombreux sites font passer toutes leurs
pages par une seule page telle que index.php?rub=<x> ou <x> va etre
une multitude de chiffres... mais je ne comprends pas quel est
l'interet de l'approche ni meme comment cela fonctionne quelqu'un
pourrait il m'expliquer ou me pointer sur une url qui fait ca ?

merci bcp.


Avatar
Jean-Marc Molina
Mod_rewrite est seulemetn une sorte de patch.


Tu te mélanges un peu les pinceaux là, il ne faut pas mélanger la conception
et le développement du site avec le serveur web. Le serveur web permet de
présenter le site sous une forme plus élégante qu'elle ne l'est en réalité.
Le visiteur ne s'intéresse pas au langage qui est utilisé pour développer le
site, il veut seulement visiter le site et à la limite avoir des URLs
explicites : www.monsite.com/contact et pas www.monsite.com/contact.php ou
www.monsite.com/page103.php.

C'est un problème de fond et de forme. Le visiteur s'intéresse à la forme et
en est satisfait tant que le fond est bon : navigation ergonomique, bon
design, mise en page soignée, stabilité et rapidité du serveur web (temps
d'affichage des pages...)...

Moi je ne dirais qu'une chose que personne ne pourra rouspecter. En regle
clair, on ne doit jamais passer les pages en parametre de


Très justifié sur ce point je suis entièrement d'accord.

Sinon tu devrais vérifier la configuration de ton client usenet car il coupe
les phrases à plus de 80 caractères ça rend la lecture de ton message
difficile, sans compter que tu parles un peu en « IRC » (pk à la place de
pourquoi...). Juste pour nous faciliter la vie à l'avenir :).

Merci pour tes remarques,
JM

--
Boycothon (Contre l'e-censure) : http://www.odebi.org/boycothon/ ~ « Le LEN
tue la démocratie ».

Avatar
jhoude
Je ne comprend pas certains arguments que plusieurs personnes ont
exposés contre cette façon de faire.

Tout d'abord, je ne vois pas en quoi ça pourrait être un problème de
sécurité. Il faut seulement s'assurer que les paramètres envoyés sont
corrects et ne permettent pas de récuperer une page qui devrait être
privée...
Mais de toute façon il pourrait y avoir les mêmes problèmes avec une
page PHP/HTML ordinaire.

Par rappport à "Les URLs sympas ne changent pas"
Là je ne comprend vraiment pas ! Personnelement, je serais plus porté
à modifier une URL en utilisant des fichiers ordinaires qu'en
utilisant un script qui fait des includes.
Il est très facile de créer de belles URL de cette façon.
Avec la variable serveur PATH_INFO et l'option MultiViews d'Apache, on
peut facilement transformer une URL du genre :
http://www.monsite.com/section1.php?page=bonjour&lang=fr
par :
http://www.monsite.com/section1/bonjour.fr.html
(ou bien ce que vous voulez, les possibilités sont infinies ;) )

Cette URL est assez générique pour ne jamais changer à mon avis, même
si on change le langage de prog ou la structure du site.
Et pas besoin de mod_rewrite pour faire ça !

Finalement, je dirais que la seule chose dont je suis sûr d'un site
web que je fais, c'est qu'il va toujours y avoir une section avec une
page qui varie.
Mais je ne sais pas d'avance où elle sera, donc faire un simple
include(header) et include(footer) ne me convient pas, car je ne
pourrai plus faire de changement majeur sans retoucher tous les
fichiers.
Et si je veux rajouter une feuille de style, par exemple, je devrais
encore une fois retoucher tous les fichiers, à moins de faire un
include de plus pour les <link rel=stylesheet...> ...

De toute façon, que chacun fasse ce qui lui tente ! ;o)

(Tlo) wrote in message news:...
bonjour,

voila, j'ai constate que de nombreux sites font passer toutes leurs
pages par une seule page telle que index.php?rub=<x> ou <x> va etre
une multitude de chiffres... mais je ne comprends pas quel est
l'interet de l'approche ni meme comment cela fonctionne quelqu'un
pourrait il m'expliquer ou me pointer sur une url qui fait ca ?

merci bcp.


Avatar
Zouplaz
Frederic Jacquot - :


Ca commence à avoir intéret sur des sites de plusieurs centaines de
pages, pour eviter d'avoir des tonnes de fichiers physiques alors que
les contenus sont stockées dans la base. Et ça permet de rajouter des
pages sans avoir a poser un seul fichier.


A condition que ces centaines de pages aient pour point commun d'être
statiques. C'est à dire du pure html.


Non ce n'est pas une nécessité.

Si dans ton site tu as des scripts divers correspondant à des fonctions
bien différentes je ne vois pas en quoi la base y change quelque chose.


je dois avouer que "des scripts divers correspondant à des fonctions bien
différentes" c'est un peu trop abstrait pour que je puisse te répondre :)



Et bien au lieu superscript.php?IDSuperModule&blablabla

tu as

shopping.php
semistatic.php
maillist.php
compte.php

etc etc

Et tout ces scripts partagent l'intégralité des ressources en terme de mise
en page, de fonctions, de classes.

Ca se bookmark très bien, alors que si l'IDSuperModule change...

Bah, de toute façon chacun fait selon ses habitudes...



Avatar
Zouplaz
Jean-Marc Molina - :

A condition que ces centaines de pages aient pour point commun d'être
statiques. C'est à dire du pure html.


On se sert plus de la base comme un vecteur pour « canaliser » le
contenu et l'information.
Le contenu peut être stocké sous la forme de fichier XML qui sont
montés à partir de gabarits XHTML/HTML par exemple.

La base sert parfois d'intermédiaire entre le site et les ressources.
Les images d'un portfolio sont sur le serveur mais la base s'occupe de
les organiser en catégories, des scripts accèdent à la base et
génèrent les pages du site à partir des gabarits... ce qui peut donner
un site statique, à visiter, au final. Gestion de contenu :).

JM



Il y aura quand même au final un portfolio.php non ?

Ou bien, superbidule.php?MODID#9


Avatar
Nudrema
Jean-Pascal Houde wrote:

Je ne comprend pas certains arguments que plusieurs personnes ont
exposés contre cette façon de faire.

Tout d'abord, je ne vois pas en quoi ça pourrait être un problème de
sécurité. Il faut seulement s'assurer que les paramètres envoyés sont
corrects et ne permettent pas de récuperer une page qui devrait être
privée...
Mais de toute façon il pourrait y avoir les mêmes problèmes avec une
page PHP/HTML ordinaire.


Tout à fait d'accord. À ceci près que le débutant ne pense jamais
(ou du moins très rarement) à tester le type et le contenu d'une
variable...

Par rappport à "Les URLs sympas ne changent pas"
Là je ne comprend vraiment pas ! Personnelement, je serais plus porté
à modifier une URL en utilisant des fichiers ordinaires qu'en
utilisant un script qui fait des includes.
Il est très facile de créer de belles URL de cette façon.
Avec la variable serveur PATH_INFO et l'option MultiViews d'Apache, on
peut facilement transformer une URL du genre :
http://www.monsite.com/section1.php?page=bonjour&lang=fr
par :
http://www.monsite.com/section1/bonjour.fr.html
(ou bien ce que vous voulez, les possibilités sont infinies ;) )


Oui, mais si tu as UNE page qui inclus tout, ça veut dire que ta
page sera d'office /maseulepage/tagada/tsointsoin
Si tu as une page par section, tu auras /section1/tagada et
/section2/tsointsoin. Je trouve que c'est "plus mieux".
D'autre part, le cas des urls a été abordé en disant que l'url ne
devait pas être du type ?xxxx&ttt=fhhe mais plutôt "jolie", ce
n'était, ce me semble, pas une critique du système en tant que tel.

Cette URL est assez générique pour ne jamais changer à mon avis, même
si on change le langage de prog ou la structure du site.
Et pas besoin de mod_rewrite pour faire ça !


T-t-t, pas bien le .html dans l'url ;-)
Pour le mod_rewrite, ça dépend, Apache Windows ne gère
apparemment pas les /fichier/arguments, il renvoie d'office une
erreur 500. Il faut donc passer par une règle basique pour
"émuler" le comportement de l'Apache Linuxien. Ceci dit, c'est un
détail, mais qui a toute son importance en Localhost, lors du
développement du site.

Finalement, je dirais que la seule chose dont je suis sûr d'un site
web que je fais, c'est qu'il va toujours y avoir une section avec une
page qui varie.
Mais je ne sais pas d'avance où elle sera, donc faire un simple
include(header) et include(footer) ne me convient pas, car je ne
pourrai plus faire de changement majeur sans retoucher tous les
fichiers.
Et si je veux rajouter une feuille de style, par exemple, je
devrais encore une fois retoucher tous les fichiers, à moins de
faire un include de plus pour les <link rel=stylesheet...


Personnellement, je n'utilise pas une "seule page" et je n'inclus
pas de header/footer. Je passe par un système de templates
basique (mais amplement suffisant) fait-maison, ce qui est encore
plus simple. Mais de toute façon, l'argument présenté (les
<link>) ne tient pas, car on peut tout à fait modifier le seul
fichier d'en-tête ^^

De toute façon, que chacun fasse ce qui lui tente ! ;o)


Bah voilà quelque chose de sensé ^^ Faites comme bon vous semble,
tant que la méthode vous convient. Que dire d'autre ?

--
Nudrema (S.F.)
http://tw.o0o.ch

Avatar
Savut
"Jean-Pascal Houde" wrote in message
news:
Je ne comprend pas certains arguments que plusieurs personnes ont
exposés contre cette façon de faire.

Tout d'abord, je ne vois pas en quoi ça pourrait être un problème de
sécurité. Il faut seulement s'assurer que les paramètres envoyés sont
corrects et ne permettent pas de récuperer une page qui devrait être
privée...


Si tu fais le site tout seul pt pas, mais avec une equipe de developpement
de 10 personnes, il se peut que qqun fasse des conneries et met un fichier
data.txt dans le repertoire public. et de plus certains hosts ne permet pas
de securiser des repertoire.

Mais de toute façon il pourrait y avoir les mêmes problèmes avec une
page PHP/HTML ordinaire.



Euh!!! je ne vois pas.

Par rappport à "Les URLs sympas ne changent pas"
Là je ne comprend vraiment pas ! Personnelement, je serais plus porté
à modifier une URL en utilisant des fichiers ordinaires qu'en
utilisant un script qui fait des includes.


Justement c'est pour ca les page include, on ne doit jamais faire ca.

Il est très facile de créer de belles URL de cette façon.
Avec la variable serveur PATH_INFO et l'option MultiViews d'Apache, on
peut facilement transformer une URL du genre :
http://www.monsite.com/section1.php?page=bonjour&lang=fr
par :
http://www.monsite.com/section1/bonjour.fr.html
(ou bien ce que vous voulez, les possibilités sont infinies ;) )

Cette URL est assez générique pour ne jamais changer à mon avis, même
si on change le langage de prog ou la structure du site.
Et pas besoin de mod_rewrite pour faire ça !



Euh, tu te melange un peu, les 2 ne font pas du tout la meme job. MultiViews
est utilise quand Apache ne trouve pas ton fichier, il va alors chercher un
autre fichier semblable qui a presque le meme nom. De plus ta page
bonjour.fr.html, ou bonjour.es.html, etc... doivent tous exister.
Mod_rewrite ne marche pas du tout pareil, il modifie le url en un format
avec ? et & genre http://domain.com/page.php/id/2/name/Savut pourrait
devenir http://mondomain.com/page.php?id=2&name=Savut pour le server. De
plus Mod_rewrite tu peux specifier comment il modifie le url, et pas
multiviews. J'espere tu comprend mieux comment ca marche la.

Finalement, je dirais que la seule chose dont je suis sûr d'un site
web que je fais, c'est qu'il va toujours y avoir une section avec une
page qui varie.


Je dirais meme plus, tous les pages finis par etre forcement dynamique.

Mais je ne sais pas d'avance où elle sera, donc faire un simple
include(header) et include(footer) ne me convient pas, car je ne
pourrai plus faire de changement majeur sans retoucher tous les
fichiers.


Euh!!! voyons donc, on fait ca justement pour eviter de retoucher a tout les
fichiers.

Et si je veux rajouter une feuille de style, par exemple, je devrais
encore une fois retoucher tous les fichiers, à moins de faire un
include de plus pour les <link rel=stylesheet...> ...



Non justement, on les include pour pouvoir le faire juste 1 fois.

De toute façon, que chacun fasse ce qui lui tente ! ;o)



Merci. mais essayons d'etre le plus efficaces possible.

(Tlo) wrote in message
news:...

bonjour,

voila, j'ai constate que de nombreux sites font passer toutes leurs
pages par une seule page telle que index.php?rub=<x> ou <x> va etre
une multitude de chiffres... mais je ne comprends pas quel est
l'interet de l'approche ni meme comment cela fonctionne quelqu'un
pourrait il m'expliquer ou me pointer sur une url qui fait ca ?

merci bcp.




Avatar
Jean-Marc Molina
Ca se bookmark très bien, alors que si l'IDSuperModule change...


C'est justement l'intérêt des IDs. L'ID ne changera jamais. Il est unique et
sa pérennité est assurée par le rôle qu'il joue au sein du système. C'est
généralement la clé primaire, auto incrémenté (MySQL) d'une table «
modules » par exemple.

Bah, de toute façon chacun fait selon ses habitudes...


En effet, ça dépend aussi grandement de l'utilisation qu'on en fait.
Utiliser un système de « modules » pour l'ensemble de ses sites permet
d'harmoniser l'ensemble alors que l'utilisation des fichiers reste un peu
trop « subjective ». Au goût du jour en somme :).

JM

Avatar
Jean-Marc Molina
Il y aura quand même au final un portfolio.php non ?
Ou bien, superbidule.php?MODID#9


On peut se retrouver avec :
www.monportfolio.com/index.php?module=portfolio&action¯ficher&membre=goa10
3

Ça affiche affiche (action afficher) le portfolio (module portfolio) du
membre goa103 par exemple. Ici on peut parfaitement tout remplacer par des
ids :
www.monportfolio.com/index.php?id_moduleP&id_action7&id_membreW68

Pour éviter d'avoir à chercher ce qu'est le module 50, quels fichiers
inclure, quel gabarit utilisé, de même pour l'action 37 qui reste un « magic
number » ou encore du membre 5768 qui n'aime pas être un numéro... On peut
tout simplement inclure le fichier HTML (précédemment généré) :
www.monportfolio/portfolio_membres/5768.html

On peut aussi envisager de simplement utiliser le gabarit et de générer
dynamiquement un fichier HTML :
www.monportoflio/gabarits/portfolio_membre.html

Je parle d'inclure ou d'utiliser. On lit le gabarit, on le traite et on
balance la sauce HTML :).

Après on peut parfaitement utiliser mod_rewrite pour dissimiler ce petit
monde des ids ou des paramètres de l'URL :
www.monportfolio.com/portfolio/goa103

Ou aussi :
www.monportfolio.com/50/37/5768

Ce qui ne veut rien dire pour l'utilisateur, il vaut donc mieux opter pour
la précédente solution. Mais il faudrait alors faire le lien entre le 50 et
« portfolio » au niveau du .htaccess. Et je ne suis pas suffisamment expert
en Apache pour savoir comment faire. Une requête vers la base à partir du
fichier .htaccess ??? Pas sûr que ça soit possible :).

Ou bien, superbidule.php?MODID#9


Je comprends que superbidule fasse peur à certains mais ce ne sont que des
exemples, il faut choisir la solution en fonction du contexte de votre
application, des besoins. Pour un site de 5 pages, superbidule c'est pas
grand chose, il permet simplement de tout centraliser. L'architecture du
site peut changer, c'est pas important, superbidule est là. C'est une
interface, une facade, et ses composantes ne doivent jamais être changées.
C'est tout le principe des interfaces logicielles (pour ceux qui connaissent
la POO, C++, Java...)

JM

1 2 3 4 5