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 :

Récupérer un contenu <head> d'une page include


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 49
    Points : 31
    Points
    31
    Par défaut Récupérer un contenu <head> d'une page include
    hello

    J'ai un site php où le contenu des pages php est chargé par la fonction include.
    Pourriez-vous me dire comment modifier le <head> de la page mère en fonction de la page chargée. P. exemple modifier la balise titre ou ajouter un script etc.

    merci

  2. #2
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Bonjour

    Comment change tu la valeur de l'include ?

    Pour changer le head je dirais à priori de la même manière que tu change la valeur de l'include...

    Il faut stocker les valeurs que tu veut donner aux balises contenues dans le head quelque part (base de données, xml...) et leur attribuer une page. Puis en affichant la page il te faut la possibilité de transmettre l'information de la page (variable en début de fichier, par $_GET...). Ensuite tu vérifie cette valeur et tu récupère les données correspondantes...
    Vous souhaitez participer à la rubrique (X)HTML/CSS, contactez moi.
    débutez avec les CSS
    Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
    Votez pour les messages qui vous ont aidés...

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 135
    Points : 179
    Points
    179
    Par défaut
    Mets directement un script php dans la page mère, non ?
    Un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <title><? 
    if(isset($_GET['nom'])) 
    echo $_GET['nom']; else echo 'accueil';?></title>
    Sinon, si tu peux pas mettre de code dans ta page mère, tu peux te tourner vers le javascript, ça me parait plus simple...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <script langage="text/javascript">
    window.onload=function()
    {
    document.title='<? 
    if(isset($_GET['nom'])) 
    echo $_GET['nom']; else echo 'accueil';?>';
    }
    </script>

    [edit] Si tu veux ajouter un javascript dans le 'head' de ta page, cf http://www.burnette.us/blog/index.cfm/2006/2/9/Using-AJAX-to-Load-JS-into-Document-Head

    ... mais l'emplacement d'un script importe peu

  4. #4
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 49
    Points : 31
    Points
    31
    Par défaut
    salut

    Je débute en php, ce n'est donc pas très évident pour moi.
    En fait je ne suis toujours pas parvenu à obtenir un résultat correct.
    Le menu envoie des adresses page comme ceci:
    index.php?page=test.php

    l'espace où le contenu s'affiche récupère les adresses du menu comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <div id="main">
    <?php
     
    $pageOK = array(
    'main.php' => 'main.php', 
    'Concerts.php' => 'Concerts.php',
    'test.php' => 'test.php');
     
     
    if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) {
    include($pageOK[$_GET['page']]); 
    } else {
    include('main.php'); 
    }
     
    ?>
    </div>
    J'aimerais donc récupérer le contenu des balises 'meta' et 'titre' des pages correspondantes à la variable 'page' et les inclure dans la page index.
    J'ai essayé différentes formules dont celle-ci (un peu bizarre p-être), mais ça ne marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <meta name="description" content="<?php echo $description;?>">
    <?php
    $tags = get_meta_tags ($page);
    ?>
    <meta name="keywords" content="
    <?php
    echo $tags['keywords'];
    ?>
    "> 
    <title><?php
    echo $tags['title'];
    ?></title>
    avec dans la page chargée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <!-- 
    <head>
    <meta name="keywords" content="liste des keywords">
    <meta name="title" content="la page concerts">
    </head>
    -->
    <p>
    Ceci est ma page concerts
    </p>
    Un peu d'aide serait la bienvenue ...

    ps: j'évite les javascripts car si l'utilisateur le met off, ça ne fonctionnera plus

  5. #5
    FoxLeRenard
    Invité(e)
    Par défaut
    Bonjour, je vois dans les exemples que tu donnes que tu as déjas assimilé bien des théories, ça devrait faciliter ton travail

    Pour moi ce que tu racontes me rappelles une page HTML vide que nous refabriquons a chaque page, pour l'envoyer au client (visiteur)

    Dans ce type de structure il faut "couper en morceaux" tes pages
    Et non pas vouloir a tout pris modifier une page existante, surtout le HEADER qui est fragil et dur a remanier (surtout les meta)

    N' en sachant pas assez sur ton affaire je vais te donner un exemple, trés trés sommaire de la bonne façon a mon avis

    Chaqque page tu l'a coupée en

    Lapage_Param.php
    LeDoctype.php
    LeMenu.php
    Lapage.php
    LeBas.php

    a partir de la TOUTES TES PAGES peuvent s'appeler ainsi

    ossature.php?page=Lapage

    Alors c'est enfantin, pour chaque page tu a deux PHP,
    celui qui contient les Paramétres utilisés dans les includes Lapage_Param.php
    et celui qui contient la page elle même Lapage.php


    Donc ossature.php aurait a peut prés cette tronche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?PHP
    if (isset($_GET["page"])) $page=trim($_GET["page"]);
       else $page="";
     
    include("".$page."_Param.php");
    include("LeDoctype.php");
    include("LeMenu.php");
    include("".$page.".php");
    include("LeBas.php");
     
    ?>
    Alors un détail parmis les mille que tu sauras utiliser
    par exemple pour la page toto
    je veux dans les META un TITLE bonjour toto

    Alors
    1) dans toto_param.php une des ligne sera
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?PHP
    $montit="bonjour toto";
    ?>
    2) dans le LeDoctype.php j'aurais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <title><?PHP echo ("".$montit.""); ?></title>
    <meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
    Bref a toi de jouer

  6. #6
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 49
    Points : 31
    Points
    31
    Par défaut
    salut

    assimilé assimilé ... c'est beaucoup dire, je lis les tuto du zero mais je vois où tu veux en venir.
    C'est une manière différente de structurer les pages avec un squelette. J'étais encore à l'époque du tout html que veux-tu La solution de recopier mes includes de menu etc dans chacune de mes pages me plaisait moyennement j'avoue.
    C'est vrai que vu comme ça ça parait plus clean que de le faire au forcing
    Bon, je vais essayer de faire ce que tu me conseille durant ce beau we
    ciao

  7. #7
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 49
    Points : 31
    Points
    31
    Par défaut
    hello

    J'ai mis cette ossature:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?PHP
    if (isset($_GET["page"])) $page=trim($_GET["page"]);
       else $page="main";
     
    include("Head.php"); 
    include("".$page."_Param.php");
    include("Menu.php");
    include("".$page.".php");
    include("Footer.php");
     
    ?>
    J'ai créé une page supplémentaire "_param.php" pour la page mère.
    La page principale s'affiche bien mais lorsque je clique sur un des liens il me met cette erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <b>Warning</b>:  include(Concerts.php_Param.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory in <b>C:\wamp\www\Bob\index.php</b> on line <b>7</b><br />
    dois-je faire des fichiers ".inc"?
    Il cherche une page Concerts.php_Param.php au lieu de Concerts_Param.php
    Aussi, j'ajoute la vérification des pages dans le fichier index?

  8. #8
    FoxLeRenard
    Invité(e)
    Par défaut
    Bonjour l'Ami,
    dans ce que tu écris, ça veut dire
    que lorsque aucun paramétre n'est passé a ta page, il ouvre les fichiers suivants REGARDES BIEN LES NOMS et au respect des majuscules minuscules

    Head.php
    main_Param.php
    Menu.php
    main.php
    Footer.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?PHP
    if (isset($_GET["page"])) $page=trim($_GET["page"]);
       else $page="main";
     
    include("Head.php"); 
    include("".$page."_Param.php");
    include("Menu.php");
    include("".$page.".php");
    include("Footer.php");
     
    ?>
    Voila et si tu passes comme parametre "Concerts" ça sera

    Head.php
    Concerts_Param.php
    Menu.php
    Concerts.php
    Footer.php

Discussions similaires

  1. Comment récupérer le contenu d'un item dans une JList ?
    Par julie_lab dans le forum Composants
    Réponses: 3
    Dernier message: 01/11/2010, 12h25
  2. récupérer le contenu de listbox associe a une groupbox
    Par MrRebel dans le forum VC++ .NET
    Réponses: 0
    Dernier message: 20/07/2009, 16h14
  3. Récupérer le contenu de la requête dans une variable
    Par cgonzalez dans le forum Langage
    Réponses: 1
    Dernier message: 06/10/2007, 11h44
  4. Récupérer le contenue d'un div d'une page HTML
    Par avogadro dans le forum Windows Forms
    Réponses: 1
    Dernier message: 10/09/2007, 09h25
  5. Récupérer le contenu d'un input d'une Popup
    Par Lung dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/06/2006, 17h09

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