5 votes

Un moyen simple et efficace de diviser le code html en plusieurs fichiers et d'utiliser la fonction include() de php.

Actuellement, pour des éléments tels que l'en-tête, le pied de page ou l'objet de la barre latérale commune, je crée un fichier personnalisé .php et faire quelque chose de ce genre :

echo '
    <some><html><here>
';

puis l'inclure dans les pages où je veux qu'il apparaisse :

include('path/to/file');

Le seul problème, c'est que quelqu'un peut faire pointer son navigateur sur mon .php et afficher une partie du html seul. Ce n'est pas très grave, mais cela semble peu professionnel et un peu négligent. Existe-t-il une meilleure façon de procéder ?

1voto

deviousdodo Points 7388

Le moyen le plus simple est de déplacer tous ces fichiers en dehors de l'arborescence de l'entreprise. DocumentRoot / public et les inclure à partir de là. Quelque chose comme :

include '../pages/header.php';
// rest of the script
include '../pages/bottom.php';

De toute façon, c'est le but de ce répertoire - ne contenir que les choses qui sont destinées à être accédées directement.

Bien sûr, la première étape après cela serait d'envisager de n'avoir qu'un seul fichier index.php qui filtre toutes les requêtes (autorisations, filtrage, réécritures, etc.) et inclut ce qui est nécessaire en fonction de la requête (cela s'appelle un contrôleur frontal et il existe également quelques frameworks légers qui l'implémentent déjà). Voici un point de départ : https://github.com/adrian-gheorghe/basic-website/blob/master/public/index.php

1voto

JB Nizet Points 250258

Placez les fichiers php inclus dans un répertoire distinct, et rendez ce répertoire inaccessible de l'extérieur (en utilisant .htaccess avec Apache, par exemple).

0voto

FarK Points 468

Vous devez restreindre l'accès à d'autres fichiers dans la configuration du serveur.

0voto

mc10 Points 5494

WordPress fait à peu près ce que vous faites actuellement : il stocke tous les fichiers du thème dans le dossier /wp-content/themes/THEMENAMEHERE/ et vous pouvez y accéder directement aux fichiers. Ce n'est pas un problème majeur, car les utilisateurs ne peuvent pas exactement faire quelque chose de nuisible, mais si vous vous en souciez, vous pouvez stocker vos fichiers dans un répertoire séparé (comme d'autres réponses l'ont mentionné), ou configurer l'option httpd.conf o .htaccess pour bloquer l'accès aux scripts particuliers.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X