1. Delporte Charlène
ATII 2011-2012
Référencement
Comment utiliser le PHP pour gérer un site Internet avec les
fonctions require() et include() et jouent elles sur le
référencement?
2. Sommaire
• Introduction
• Le fonctionnement
• Leur utilisation
• Le référencement
• Conclusion
3. Introduction
Partie de code identique à plusieurs endroits
« config.php »
Structure de langage capable d’importer et
d’exporter le code à utiliser dans la page :
include() et require().
De nos jours, une grande partie des sites web dynamiques ou applications ont besoin de réutiliser des parties de code identique à plusieurs endroits d’une même page ou dans plusieurs pages différences tel que les menus par exemple ou encore les librairies de fonction utilisateurs ou de configuration comme par exemple le fichier « config.php » pour accéder à la BDD. Plutôt que de réécrire à chaque fois le code, il existe des fonctions (structure de langage) qui sont capables d’importer et d’exécuter le code à réutiliser dans la page.. Il s’agit des fonctions require() et include().
Leur fonctionnement est strictement le même sauf au niveau de la gestion des erreurs. La fonction include() provoque une erreur de type Warning si elle n’arrive pas à trouver le fichier à charger. Cependant, le script est tout de même exécuté, il fait seulement abstraction de la fonction include() . En revanche, la fonction require() génère une erreur fatale de type FATAL ERROR qui interrompt l’exécution du script. Son utilisation sera faite si le fichier à inclure doit être « obligatoire ». Toutefois, si son utilisation est optionnelle, il est préférable d’utiliser la fonction include() .
Leur fonctionnement est strictement le même sauf au niveau de la gestion des erreurs. La fonction include() provoque une erreur de type Warning si elle n’arrive pas à trouver le fichier à charger. Cependant, le script est tout de même exécuté, il fait seulement abstraction de la fonction include() . En revanche, la fonction require() génère une erreur fatale de type FATAL ERROR qui interrompt l’exécution du script. Son utilisation sera faite si le fichier à inclure doit être « obligatoire ». Toutefois, si son utilisation est optionnelle, il est préférable d’utiliser la fonction include() .
Leur fonctionnement est strictement le même sauf au niveau de la gestion des erreurs. La fonction include() provoque une erreur de type Warning si elle n’arrive pas à trouver le fichier à charger. Cependant, le script est tout de même exécuté, il fait seulement abstraction de la fonction include() . En revanche, la fonction require() génère une erreur fatale de type FATAL ERROR qui interrompt l’exécution du script. Son utilisation sera faite si le fichier à inclure doit être « obligatoire ». Toutefois, si son utilisation est optionnelle, il est préférable d’utiliser la fonction include() .
Leur fonctionnement est strictement le même sauf au niveau de la gestion des erreurs. La fonction include() provoque une erreur de type Warning si elle n’arrive pas à trouver le fichier à charger. Cependant, le script est tout de même exécuté, il fait seulement abstraction de la fonction include() . En revanche, la fonction require() génère une erreur fatale de type FATAL ERROR qui interrompt l’exécution du script. Son utilisation sera faite si le fichier à inclure doit être « obligatoire ». Toutefois, si son utilisation est optionnelle, il est préférable d’utiliser la fonction include() .
Il y a 2 syntaxes possibles pour chacune des deux fonctions. Il faut faire attention au piratage lorsque ces fonctions ne sont pas utilisées correctement, il existe une faille de sécurité très dangereuse. Lors de cet exemple, aucun risque de piratage n’est possible car les chemins sont rentrés en dur (ce qui signifie que le fichier à inclure est inscrit clairement). Mais lorsque l’on ajoute un GET, le $_GET contient toutes les valeurs passées dans l’URL. Dans ce cas, 3 cas de figure s’offrent à nous : -> $_GET[‘page’] est vide donc impossible d’importer et cela provoque une erreur. -> $_GET[‘page’] est rempli et représente un fichier du serveur. L’importation se fera sans problème. -> $_GET[‘page’] est rempli mais contient l’adresse menant à un fichier pirate dangereux présent sur un serveur différent. Par exemple, si $_GET[‘page] vaut http://unsitepirate.com/hacker.php : le fichier hacker.php sera donc importé et le site piraté. Il ne faut donc JAMAIS utiliser ce type de code ! La solution à utiliser est ce que nous avons vu précédemment avec les liens en dur. Ce code protège des importations frauduleuses mais si le fichier n’existe pas, il ne sera ps iporter.
Google ne récupère qu’une seule page car en regardant le code source de la page malgré les fonctions include() et require(), qu’une seule page est chargée et qu’on aperçoit aucun include. Cependant, toutes les parties ou pages sont inclues. Pour favoriser le référencement, il est préférable d’utiliser require_once() et include_once(), ces 2 fonctions ne provoque pas de redondance et sont donc favorables pour les moteurs de recherche tels que Google, Yahoo.
Ces fonctions include() et require() sont très pratique pour fragmenter un code utilisé dans plusieurs fichiers en même temps. Cependant, il faut les utiliser avec prudence pour éviter d’ouvrir des failles aux pirates amateurs.