|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : octobre 2010 Messages : 24 ![]() |
Bonjour, j'aurais besoin d'éclaircissements à propos de la navigation que je souhaite réaliser sur mon site en utilisant les includes.
J'ai une page d'accueil index.php sur laquelle tout le site s'appuie mais je ne sais pas si c'est la bonne solution...: Code :
Code :
Je me demande alors s'il ne serait pas judicieux de recopier la page index sur tout le site et de changer à chaque fois le corps mais je ne pourrais alors plus utiliser la fonction $_GET qui me renvoie l'adresse de la page à afficher, pourrais-je avoir des avis? |
||||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Baptiste ROUSSELÉtudiant Inscription : janvier 2011 Messages : 817 ![]() |
Pour ce que tu veux faire tu devrais te pencher vers du MVC (Modèle Vue Contrôleur) ce serait plus facile à manipuler.
Même si on ne part pas sur un développement POO (la majorité des cours et tutoriaux ne présente cela qu'en orienté objet) il faut savoir qu'on peut très bien implémenter du MVC sans cela. Il suffit de faire le traitement avant tout affichage. Ainsi avant même d'afficher du HTML tu auras déjà toutes les informations.
__________________
|
|
|
00
|
|
|
#3 | |||||||
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 738 ![]() |
+1 pour ci-dessus.
Cela fait partie d'une des erreurs que font ceux qui débutent. En faite, le déroulement du code Php est effectué selon le déroulement de celui du Html, et c'est là grosse erreur. Il n'y a pas à tenir compte du déroulement du code Html, faite en 1er tout le Php, et en dernier on génère le code Html. Il faut vraiment comprendre que le code Php qui lui est interprété coté serveur sert en partie à générer du code Html, puis ce code Html (uniquement le code Html) sera renvoyé via le réseau vers le post client (navigateur), et ce ne sera qu'à partir de cet instant (donc bien après) que ce code Html sera interprété par ce navigateur. Toujours est il que le fait d'avoir effectué le code Php qui s'occupe à vérifier et inclure l'existence du fichier demandé (comme page10.php) après l'inclusion de l'entête, et bien on est coincé. Faire ainsi par exemple devient possible : Code :
Encore que dans cet exemple, du fait d'inclure à cet endroit la page demandée les traitements seront exécuté en plein corps de la page Html, ce qui peut être à nouveau problématique. On peu améliorer cela en procédant par exemple comme ceci : page10.php Code :
Code :
L'exécution du code se faisant avant le moindre renvoie de contenu (avant le doctype, html, etc ...). En résumé, la page index.php ferait office de FrontController, et chaque page (page1, page2, etc ...) de controller. entete.php, pied_de_page.php sont des Vues. Reste donc à séparer les Requêtes SQL pour s'approcher d'une structure MVC. Citation:
$_GET (qui n'est pas une fonction) est un tableau superglobal, ce qui veut dire que tout ce qu'il contient est disponible dès la toute 1ère ligne de code de la page jusqu'à la dernière, y compris visible dans les fonctions et classes.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|||||||
|
|
00
|
|
|
#4 | |
|
Membre expérimenté
![]() |
Re ;
Citation:
![]() là avec $_Get sa pose pas un problème de sécurité parce que tous est affiché dans la barre bien sur si je me trompe pas!!!! |
|
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Baptiste ROUSSELÉtudiant Inscription : janvier 2011 Messages : 817 ![]() |
Tant que tu gères un array contenant la liste des scripts autorisés cela ne pose aucun souci que ça soit visible ou non dans l'url.
Et si le problème est que les visiteurs auront l'url pour accéder directement au fichier il suffit de jouer sur une constante : Code php :
if( !defined('MA_CONSTANTE') ) exit();
__________________
|
|
|
00
|
|
|
#6 | |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 738 ![]() |
Citation:
Tu omets tout de même qu'il y a ceci : Code :
if (file_exists($_GET['page'].'.php')) Si on a une URL comme : -http://www.domaine.com/contact.php ou encore -http://www.domaine.com/partenaires.php domaine.com, contact ou partenaires sont bien en clair, non ? donc quelque part en GET. Si on regarde par exemple ce forum pour ce topic, le lien est : -http://www.developpez.net/forums/d1182536/php/langage/debuter/navigation-site-php/ Ce qui peu donner quelque chose comme : (dû à la réécriture) -http://www.developpez.net?forums=d1182536&php=langage&debuter=navigation-site-php Donc tout passe en GET. Le but étant que les topics puissent être référencés dans des moteurs de recherches. Si on ne fait pas ça on ne sera jamais "visible" nulle part. Il faut juste vérifier que les contenus demandés soient conforment, comme par exemple l'existence d'une page. Si toutes les pages sont stockées dans un répertoire bien précis (comme "pages"), et bien si quelqu'un demande une page inexistante, alors on rejette ou on fournis une page par défaut. Son principe repose la dessus, ça me semble une solution valable. Si dans ce même répertoire "pages" il y a certaines contenant des données sensibles/confidentielles, là il peu avoir un problème. Mais on ne sait pas.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
|
00
|
|
|
#7 | ||
|
Invité de passage
![]() Inscription : octobre 2010 Messages : 24 ![]() |
Euh, désolé de relancer le sujet mais je ne m'y suis pas attelé depuis...
J'ai donc choisi la réponse de RunCodePhp pour naviguer sur le site et j'ai des questions par rapport aux réponses que vous m'avez expliqué mais j'ai maintenant un autre souci mineur que je n'avais pas avant avec la fonction file_exist; il ne trouve pas la page que je lui envoieen $_GET mais il trouve quand même la page erreur, ce doit être le file_exist qui ne cherche pas au bon endroit mais je n'arrive pas à lui "dire" où chercher: J'ai ceci au début de ma page index.php et mes pages sont dans /pages par rapport à index Code :
|
||
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Baptiste ROUSSELÉtudiant Inscription : janvier 2011 Messages : 817 ![]() |
Code :
if (file_exists('/pages/'$_GET['page'].'.php')) {
__________________
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com