OVH Cloud OVH Cloud

Site avec plusieurs pages

21 réponses
Avatar
Nicolas
Bonjour,

Je dois realiser un site avec plusieurs pages, mon ancienne methode etait de
creer la structure du site (l'ossature) puis d'appeler l'intérieur avec des
includes en php.

Exemple dans la racine :

page1.php
page2.php
page3.php

dans un répertoire "includes" :

structure.php
page1.inc.php
page2.inc.php
page3.inc.php


ça fait donc www.monsite.php/page1.php
page1.php renvoyait vers le repertoire includes pour ouvrir structure.php +
include de page1.inc.php,
le probleme est que je me retrouve avec plein de fichiers dans la racine et
pareil dans include, ce qui est bien c'est pour le referencement avec les
noms des pages !

Sinon je peux faire : www.monsite.php/structure.php?page=page1
Super pour ma racine mais moins top pour google

Alors deux questions :

- Comment faites vous ou quelle est la methode la plus propre ?

- Comment faire comme certain site mettre le ? sans nom de fichier, exemple
: monsite.com/?action=products.collection.byCategory&id_category=5

Comment ils gerent aussi toutes cette ligne :
action=products.collection.byCategory&id_category=5

Merci d'avance !
Nicolas

10 réponses

1 2 3
Avatar
Pierre Goiffon
Nicolas wrote:
Je dois realiser un site avec plusieurs pages, mon ancienne methode etait de
creer la structure du site (l'ossature) puis d'appeler l'intérieur avec des
includes en php.


(...)
ça fait donc www.monsite.php/page1.php
page1.php renvoyait vers le repertoire includes pour ouvrir structure.php +
include de page1.inc.php,
le probleme est que je me retrouve avec plein de fichiers dans la racine et
pareil dans include, ce qui est bien c'est pour le referencement avec les
noms des pages !

Sinon je peux faire : www.monsite.php/structure.php?page=page1
Super pour ma racine mais moins top pour google

Alors deux questions :

- Comment faites vous ou quelle est la methode la plus propre ?



Je n'ai jamais bien compris ce qui pouvait pousser à ce genre de
raisonnements qui font arriver aux 2 structures que vous décrivez.
Qu'est-ce qui est donc si génant dans le fait d'avoir 3 fichiers pour 3
pages ? Enfin bref...

On crée des includes, logiquement, parce qu'on a besoin de la même chose
à plusieurs endroits. Donc, dans l'include, on a le générique. Dans le
fichier lui-même, le particulier. Quel intérêt de créer un include
appelé à un seul et unique endroit ?

- Comment faire comme certain site mettre le ? sans nom de fichier, exemple
: monsite.com/?action=products.collection.byCategory&id_category=5



La page par défaut...
Si index.php est la page par défaut, alors :
/?id!45
est équivalent de :
/index.php?id!45

Ceci étant dis, la structure des fichiers de votre application et les
paramètres passés dans l'URL sont une chose, les URL que les
utilisateurs vont voir une autre. Il existe de nos jours, bien
heureusement, des tas de solutions qui permettent de dissocier la
logique des URL et celle de l'application. Un document indispensable à
lire dans cet esprit :
"Cool URI don't change"
http://www.w3.org/Provider/Style/URI

Prenez le temps de calmement réfléchir aux choses, en pensant à
l'avenir, à la maintenance, et avec ce petit temps de réflexion et un
peu de bon sens vous devriez trouver les réponses qui conviendront à
votre cas particulier.
Avatar
O.L.
Nicolas a présenté l'énoncé suivant :
Bonjour,

Je dois realiser un site avec plusieurs pages, mon ancienne methode etait de
creer la structure du site (l'ossature) puis d'appeler l'intérieur avec des
includes en php.


[...]
Sinon je peux faire : www.monsite.php/structure.php?page=page1
Super pour ma racine mais moins top pour google



T'es sûr ?

Alors deux questions :

- Comment faites vous ou quelle est la methode la plus propre ?



Perso j'utilise toujours "index.php?page=maPage".

- Comment faire comme certain site mettre le ? sans nom de fichier, exemple
monsite.com/?action=products.collection.byCategory&id_category=5





Si le script qu'il faut appeller est le script qui s'exécute par défaut
lorsque l'on demande ce répertoire (index.php, default.php ...), eh
bien tu n'es pas obligé de mettre son nom, c'est tout.
Par contre si tu veux appeller un autre script, par exemple
monScript.php, là tu seras obligé de marquer en entier :
monScript.php?action=blabla&id_category=5

Comment ils gerent aussi toutes cette ligne :
action=products.collection.byCategory&id_category=5



Le script PHP recois les valeurs des variables action et id_category
soit directement (avec register_global=on), donc ils peuvent les
utiliser d'emblée (echo $id_category;), ou bien ils les récupèrent par
$_POST['action'] ou $_GET['action'] selon le type de requête (quand
register_global=off).

Merci d'avance !



De rien :)

--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net
Avatar
ASM
O.L. a écrit :

soit directement (avec register_global=on),



c'est quoi çà ?
où çà se met ?
sur la page ?


donc ils peuvent les
utiliser d'emblée (echo $id_category;)



çà c'est bien et pratique
donc quoi t-est-ce register_global

en PHP y m'en inventent tous les jours
et les trucs de base sont bien cachés sur les sites de vulgarisation

ou bien ils les récupèrent par
$_POST['action'] ou $_GET['action'] selon le type de requête (quand
register_global=off).



ce sera pour la leçon suivante ...


--
Stephane Moriaux et son [moins] vieux Mac fachés avec le PHP
Avatar
O.L.
ASM a couché sur son écran :
O.L. a écrit :
>
soit directement (avec register_global=on),



c'est quoi çà ?
où çà se met ?
sur la page ?


[...]
en PHP y m'en inventent tous les jours
et les trucs de base sont bien cachés sur les sites de vulgarisation



register_globals c'est une option de configuration de PHP (cf. fichier
php.ini).
Quand c'est à "on", tous les paramètres passés dans l'URL
(machin.php?variable=valeur) sont automatiquement disponibles dans le
script PHP.
Concrètement, un script test.php contenant seulement <?php echo $var;
?> appellé de cette manière : test.php?var=ASM_will_love_PHP, va
répondre immédiatement (et très justement) : "ASM_will_love_PHP".

L'avantage, c'est que c'est plus simple pour programmer ses trucs,
l'inconvénient c'est que niveau sécurité c'est pas génial.


--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net
Avatar
O.L.
Il se trouve que ASM a formulé :
O.L. a écrit :
>
soit directement (avec register_global=on),



c'est quoi çà ?
où çà se met ?
sur la page ?



PS : et donc si register_globals est à "off", mister Nicolas pourra
récupérer la valeur de ses paramètres passés dans l'URL, en utilisant
les variables $_GET et $_POST qui sont automatiquement remplies avec
*tout* ce qu'on passe en "paramètre d'URL" et en champs de formulaires.

--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net
Avatar
Denis Beauregard
Le Mon, 07 Nov 2005 18:06:02 +0100, ASM
écrivait dans
fr.comp.infosystemes.www.auteurs:

O.L. a écrit :
>
soit directement (avec register_global=on),



c'est quoi çà ?
où çà se met ?
sur la page ?


donc ils peuvent les
utiliser d'emblée (echo $id_category;)



çà c'est bien et pratique
donc quoi t-est-ce register_global

en PHP y m'en inventent tous les jours
et les trucs de base sont bien cachés sur les sites de vulgarisation

ou bien ils les récupèrent par
$_POST['action'] ou $_GET['action'] selon le type de requête (quand
register_global=off).



ce sera pour la leçon suivante ...



Il y a aussi le $_SESSION qu'il faut maintenant gérer de cette façon
plutôt que par les session_*

En fait, on s'aperçoit quand on essaie de recycler du code que cela
ne marche pas toujours parce que ce code a été développé pour des
sites avec d'autres configs que celle que l'on a sur le serveur.

Même si on a payé pour ce code (par exemple, en achetant un livre sur
le PHP et en essayant d'utiliser les fichiers inclus comme exemples
avec le livre), il y a beaucoup de ré-édition à faire.


Denis
Avatar
Thibaut Allender
On 7/11/2005 18:06, ASM wrote :
ce sera pour la leçon suivante ...



en privé ou dans le groupe dédié à PHP alors, parce que sinon, on a pas
fini ;-)

--
thibaut allender | http://capsule.org | http://photo.capsule.org
Avatar
Thibaut Allender
On 7/11/2005 18:12, O.L. wrote :
PS : et donc si register_globals est à "off", mister Nicolas pourra
récupérer la valeur de ses paramètres passés dans l'URL, en utilisant
les variables $_GET et $_POST qui sont automatiquement remplies avec
*tout* ce qu'on passe en "paramètre d'URL" et en champs de formulaires.



En register_globals On aussi...

--
thibaut allender | http://capsule.org | http://photo.capsule.org
Avatar
ASM
O.L. a écrit :
PS : et donc si register_globals est à "off", mister Nicolas pourra
récupérer la valeur de ses paramètres passés dans l'URL, en utilisant
les variables $_GET et $_POST qui sont automatiquement remplies avec
*tout* ce qu'on passe en "paramètre d'URL" et en champs de formulaires.



donc
si je javascripte

location="truc.php?ASM=OL est super"

et que truc.php est
<html>
<h1 style="text-align:center"><? echo $GET_['ASM'] ?></h1>
</html>

je dois avoir à l'écran :
*OL est super*

jusqu'alors je faisais
echo 'steph nous dit : '.$ASM;
qui fonctionne bien chez Free (du moins crois-je ?)
et ne marchant pô sur l'Apache de mon Mac je croyais mon PHP bousillé

ben ... non ... j'arrive seulement à avoir :
steph nous dit :

donc tout n'est pas perdu, le php semble être partiellement là

et j'ai bien :
_SERVER["REQUEST_METHOD"] = GET
register_globals = off
me dit phpinfo()

--
Stephane Moriaux et son [moins] vieux Mac
qui ne progressent pas en PHP
Avatar
O.L.
ASM a formulé la demande :
O.L. a écrit :
PS : et donc si register_globals est à "off", mister Nicolas pourra
récupérer la valeur de ses paramètres passés dans l'URL, en utilisant les
variables $_GET et $_POST qui sont automatiquement remplies avec *tout* ce
qu'on passe en "paramètre d'URL" et en champs de formulaires.



donc
si je javascripte

location="truc.php?ASM=OL est super"

et que truc.php est
<html>
<h1 style="text-align:center"><? echo $GET_['ASM'] ?></h1>
</html>

je dois avoir à l'écran :
*OL est super*



Oui

jusqu'alors je faisais
echo 'steph nous dit : '.$ASM;
qui fonctionne bien chez Free (du moins crois-je ?)



Oui

et ne marchant pô sur l'Apache de mon Mac je croyais mon PHP bousillé

ben ... non ... j'arrive seulement à avoir :
steph nous dit :

donc tout n'est pas perdu, le php semble être partiellement là

et j'ai bien :
_SERVER["REQUEST_METHOD"] = GET
register_globals = off
me dit phpinfo()



Donc si tu veux que ton machin marche, soit tu reconfigures PHP en
mettant register_globals à "on", soit tu écris :
echo 'steph nous dit : '.$_GET['ASM'];


--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net
1 2 3