IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Où placer les balises meta lorsqu'on a un header.php ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    778
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 778
    Par défaut Où placer les balises meta lorsqu'on a un header.php ?
    Bonjour,
    Je suis encore un peu novice dans le développement Web. Je m'excuse par avance si je n'ai pas posté dans la bonne rubrique mais ma question est à cheval sur plusieurs problématiques : html, php, référencement.
    Ce que je sais (ou crois savoir) :
    - les balises meta doivent être placées dans le HEAD, donc avant le BODY.
    - Ces balises sont utiles au référencement mais certaines doivent être uniques pour chaque page sous réserve d'être blacklisté par les moteurs de recherche
    - je sais scinder une page web en plusieurs fichiers PHP pour ne pas répéter les parties communes à une page.

    J'avais auparavant 4 pages Web sur mon site. Ces 4 pages avaient en commun la même partie haute constituée d'un en-tête et d'une barre de menu horizontale, et le même pieds de page (copyright, mentions légales etc...).

    Jusqu'ici ces 4 pages étaient définies dans 4 pages web. Chacune reprenait à l'identique le code pour l'en-tête et le pied de page.
    A chaque fois que je modifiais quelque chose dans l'en-tête ou le pied de page, il fallait que je le fasse sur mes 4 pages.

    J'ai donc découvert la possibilité de scinder chaque page affichée en 3 fichiers php.
    - le header.php qui reprend tout le code commun de l'en-tête
    - le index.php qui est différent pour chacune des 4 pages (en fait appelées page1.php, page2.php etc...)
    - le footer.php qui reprend tout le code commun au pied de page.

    J'ai trouvé comment, dans chaque pageX.php, faire appel au header.php et au footer.php grâce à la fonction require en PHP.

    J'étais tout content de moi... sauf que...

    En réalité, dans mon header.php il y a notamment la rubrique HEAD et les balises meta. Or, comme on l'a vu plus haut, certaines balises meta doivent être uniques, par exemple la balise meta description qui ressemble à quelque chose comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta name="description" content="Ceci est ma page X">
    Le problème est le même avec la balise <title>

    Je voulais donc savoir comment on fait pour concilier les 2 approches :
    - avoir une page scindée en 3 fichiers PHP dont 2 sont communs (le header et le footer)
    - avoir des balises propres à chaque "page affichée" (title et meta).

    Merci de votre aide.

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 713
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 713
    Par défaut
    les fichiers "header", "footer", "page1", "page..." sont souvent appelé "template" et pour personnaliser ces templates, tu peux leur passer des paramètres

    voilà par exemple une version très simplifiée, tu verras qu'il existe des moteurs de template qui sont beaucoup plus développés mais qui font la même chose dans le principe :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $titrePage = "Page principale";
     
    require "header.php";
    require "page2.php";
    require "footer.php";

    et dans header.php :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <title><?php echo htmlspecialchars($titrePage);?> - Nom du site</title>
    ...

    et ensuite tu peux même réutiliser l'information dans le fichier "page2.php"

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    <h1><?php echo htmlspecialchars($titrePage);?></h1>
    ...

  3. #3
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    778
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 778
    Par défaut
    Tout d'abord, merci de prendre le temps de m'aider !

    Dans quel fichier faut-il écrire le premier de tes 3 codes ?
    Qu'est ce que htmlspecialchars ?

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 713
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 713
    Par défaut
    pour des questions de ce genre qui concernent plus PHP, elles ont leur place dans le forum PHP là -> http://www.developpez.net/forums/f92...ngage/debuter/

    pour la documentation sur les fonction PHP, il suffit d'aller à l'URL "php.net + nom de la fonction" par exemple php.net/htmlspecialchars

Discussions similaires

  1. Accent html dans les balises META
    Par dominos dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 27/01/2011, 13h01
  2. cherche une précision sur les balise meta
    Par audax dans le forum Débuter
    Réponses: 5
    Dernier message: 16/11/2010, 18h02
  3. [XHTML 1.0] quel sont les types de balises Meta utile?
    Par sarah_insat dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 26/11/2009, 22h25
  4. Variables dans les balises META
    Par kanabzh29 dans le forum Langage
    Réponses: 13
    Dernier message: 10/07/2008, 18h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo