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 :

Balise title dynamique


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 37
    Points : 26
    Points
    26
    Par défaut Balise title dynamique
    Bonsoir,
    Voila j'ai crée mon site web avec des includes.
    Et la partie <head></head> est la même pour toutes les pages.

    J'aimerai savoir comment faire pour que le titre change en fonction de la page, j'ai pensé à insérer du php dans la balise title et mettre la variable title dans chaque page su site mais ça ne fonctionne pas.

    Si vous avez une idée, n'hésitez pas

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Est-ce que tu pourrais nous montrer ton script pour voir ou ca coince ?
    Par ce qu'effectivement il suffit de traiter tout cela avec un titre en variable ... sous reserve de definir la valeur de la variable avant d'afficher le <title>

  3. #3
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    Il a plein de techniques disponibles, perso j'utilise un array().

    Toutes mes pages passent par un index.php, les liens sont +/- de la forme suivante : index.php?page=nom_de_la_page

    En haut de l'index.php je fais un include() d'un fichier de config, il est donc chargé pour chaque page. J'ai donc créé un tableau comme ceci :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $titles = array(
              nom_page_1 => "Home",
              nom_page_2 => "Liens",
              nom_page_3 => "Contact"
    );

    Après dans la balise title ça donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <title><?php print($titles[$_GET["page"]]); ?></title>

  4. #4
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 37
    Points : 26
    Points
    26
    Par défaut
    ça marche
    mais en fait faut que je me trouve un script qui aille bien et le plus court possible.
    Car chaque page à un nom dur mon site :
    index.php
    histoire.php
    liens.php
    ...

  5. #5
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    hmm le problème ne devrait donc pas vraiment se poser

    Vu que toutes les pages sont séparées, tu devrais avoir un <head></head> sur chaque page et donc tu pourrais l'écrire à la main...

    Mais sinon, tu pourrais quand même pouvoir utiliser ce script sauf qu'au lieu d'utiliser la variable $_GET[] t'utilises les variables $_SERVER[] pour récupérer le nom de ta page .php

  6. #6
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 37
    Points : 26
    Points
    26
    Par défaut
    Il faut juste que je remplace $_GET par $_SERVER[] ?

  7. #7
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    Citation Envoyé par bluefish63 Voir le message
    Il faut juste que je remplace $_GET par $_SERVER[] ?
    Non ce que je voulais dire c'est qu'il fallait jouer avec les variables $_SERVER[]

    Voilà un petit code à adapter selon tes besoins. Attention, j'ai mis un OU en commentaire.

    Avant le OU, $currentPage retourne la page PHP courante AVEC son extension (exemple : index.php)
    Apres le OU, $currentPage retourne la page PHP SANS son extension (exemple : index)

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $sName = explode("/", $_SERVER['SCRIPT_NAME']);
    foreach( $sName AS $value ) {
    	if( substr($value, -4, 4) == ".php" ) {
    		$currentPage = $value;
     
    		// OU 
    		//----- (si on veut la page sans le .php)
     
    		$currentArray = explode(".", $value);
    		$currentPage = $currentArray[0];
    	}
    }
    echo "page : ".$currentPage;

  8. #8
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 37
    Points : 26
    Points
    26
    Par défaut
    Oki merci beaucoup mais je crois que je vais refaire le site avec un index.php et des includes.

    Par contre j'ai un problème pour la page de l'index, j'aimerai que mon site aille directement vers index.php?page=Accueil au lieu d'aller vers index.php et je n'aimerai pas faire une redirection sauvage

    Merci en tout cas de toute l'aide que tu m'apportes

  9. #9
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    Tu dois utiliser un switch() pour tes includes.

    Donc il suffit de mettre dans le cas "default" d'inclure ta page accueil

    Exemple :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if( !isset($_GET["page"]) )
       $page = "";
    else
       $page = $_GET["page"];
     
    switch( $page ) {
        case "news" : include("news.php"); break;
        case "quelque_chose" : include("une_page.php"); break;
        default : include("accueil.php"); break;
    }

  10. #10
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 37
    Points : 26
    Points
    26
    Par défaut
    Je le met en haut de ma page index.php et ça ira à index.php?page=Accueil ?

  11. #11
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    les include() se font là où ils se trouvent.

    Voici un petit exemple d'une de mes pages index.php

    Code php : 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    <!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">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title><?php echo $titreSite.$titrePage[$_GET["p"]]; ?></title>
    <style type="text/css" media="screen">
    <!--
    @import url("css/main.css");
    -->
    </style>
    <!--[if lte IE 6]>
    <link rel="stylesheet" href="css/ie6.css" type="text/css" />
    <![endif]-->
    <!--[if IE 7]>
    <link rel="stylesheet" href="css/ie7.css" type="text/css" />
    <![endif]-->
    <script type="text/javascript" src="js/prototype.js"></script>
    <script type="text/javascript" src="js/scriptaculous.js?load=effects"></script>
    <script type="text/javascript" src="js/lightbox.js"></script>
    <link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
    </head>
    <body>
    <div id="wrap">
    	<div id="banFond"></div>
        <div id="menu">
            <?php include("menu.php"); ?>
        </div>
        <div id="page">
            <div id="page_cont_haut"></div>
            	<div id="cont">
            		<?php
    					switch($_GET["p"]) 
    					{
    						case "competences" : include("pages/competences.php"); break;
    						case "histoire" : include("pages/histoire.php"); break;
    						case "offresemploi" : include("pages/offres_emploi.php"); break;
    						case "roles" : include("pages/roles.php"); break;
    						case "trouversf" : include("pages/trouver_sf.php"); break;
    						case "sfadd" : include("pages/sf_add.php"); break;
    						case "faq" : include("pages/FAQ.php"); break;
    						case "formations" : include("pages/formations.php"); break;
    						case "ecoles" : include("pages/ecoles.php"); break;
    						case "map" : include("pages/map.php"); break;
    						case "nomenclature" : include("pages/tarifs.php"); break;
    						case "acc" : include("pages/accouchement.php"); break;
    						case "accanim" : include("pages/acc_anim.php"); break;
    						default : include("pages/home.php"); break;
    					}
    				?>
                </div>
                <div id="cont_bas"></div>
            </div>
        </div>
        <div id="page_bas"></div>
        <div id="footer">
        	<ul>
            	<?php include("footer.php"); ?>
            </ul>
       </div>
    </body>
    </html>

  12. #12
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 37
    Points : 26
    Points
    26
    Par défaut
    Merci pour tout

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Balise TITLE en dynamique : W3C non valide
    Par Alain17 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 14/12/2013, 21h59
  2. Balises title et meta dynamiques
    Par Geprocor dans le forum Langage
    Réponses: 18
    Dernier message: 07/07/2008, 16h05
  3. [Tableaux] Balise title d'une page web
    Par Invité dans le forum Langage
    Réponses: 4
    Dernier message: 12/01/2006, 18h25
  4. Récupérer le contenu de la balise title
    Par roots dans le forum Langage
    Réponses: 2
    Dernier message: 11/09/2005, 16h17
  5. Problème formatage dans balise title / alt
    Par jflebegue dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 09/12/2004, 15h18

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