PHP/ balises title

Fermé
gtulian - 28 juin 2010 à 20:56
js95 Messages postés 773 Date d'inscription samedi 14 juin 2008 Statut Membre Dernière intervention 29 juillet 2014 - 20 juil. 2010 à 15:58
Bonjour,
Le programmeur qui a crée mon site à mis juste 1 balise title pour tout mon site.
Est-ce qu'Il possible dans un site fait en php d'avoir 1 balise par page?
Si oui, comment le faire svp?


A voir également:

8 réponses

js95 Messages postés 773 Date d'inscription samedi 14 juin 2008 Statut Membre Dernière intervention 29 juillet 2014 353
28 juin 2010 à 20:58
Bien sûr. J'ai fait un site en php, chaque page a son titre. Il suffit de faire comme si c'était du html. Poste ton code avec le nom des fichiers.
0
J'ai juste fichier par page, ex 1 fichier head, 1 accueil, etc

Voici une partie du code d'une de mes pages:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr" dir="ltr">

<head>
<meta name="verify-v1" content="MvjYkxX8rK+5of58EBOlE/BiEh3IrDjZB+/IukFmYe8="/>

<meta name="verify-v1" content="KmprDa5CQGX0WxlAt0ur2ja130ELppowr7mAG/AVMPU=" />

<title>Idées cadeaux petits-déjeuners frais du jour - Fête des pères - Cadeau de fête original </title>

<meta http-equiv="content-language" content="fr-ca" />
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1" />

<meta name="Identifier-url" content="https://www.monpaniergourmet.ca/" />

<meta name="Description" lang="fr" content="Idées cadeaux petits-déjeuners : Idée cadeau original, fête des pères,, déjeuners tendance, du terroir, classique, produits frais du jour livrés à domicile, cadeaux d'anniversaire et fête, Montréal, Québec"/>

<meta name="keywords" lang="fr" content="cadeaux, original, cadeau fête des pères, anniversaire, idées cadeaux, idée cadeau, gifts, birthday's gifts, Montréal, petits-déjeuners, cadeaux de fête"/>

<meta name="robots" content="index,follow" />
<meta name="location" content="Montréal, Québec, Canada" />
0
js95 Messages postés 773 Date d'inscription samedi 14 juin 2008 Statut Membre Dernière intervention 29 juillet 2014 353
30 juin 2010 à 12:38
Modifie la partie en gras sur toutes les pages.


<title>Idées cadeaux petits-déjeuners frais du jour - Fête des pères - Cadeau de fête original </title> 

0
si j'ai bien compris, il faut que je rentres manuellement à chaque page un title diff, même si j'ai 1 seul meta pour tout le site?

Croyez vous que cet action pourrait aider à avoir un meilleur indexation ?
0
js95 Messages postés 773 Date d'inscription samedi 14 juin 2008 Statut Membre Dernière intervention 29 juillet 2014 353
30 juin 2010 à 18:33
Le code ci-dessus est celui du fichier head ?
0
js95 Messages postés 773 Date d'inscription samedi 14 juin 2008 Statut Membre Dernière intervention 29 juillet 2014 353
30 juin 2010 à 18:36
Si c'est le cas on peut très bien mettre la balise <title> après les balises <meta> et donc la mettre dans chaque page plutôt que dans le fichier head.
0
le code est celui d'un de mes pages. et le title que vous voyez est celui mis dans le meta.
J'ai juste 1 fichier par page: alors juste 1 head pour tout mon site
0
js95 Messages postés 773 Date d'inscription samedi 14 juin 2008 Statut Membre Dernière intervention 29 juillet 2014 353
30 juin 2010 à 19:01
Désolé mais le <title> dans le code ci-dessus n'est pas dans une balise meta.
Il y a plusieurs éléments <title> alors une fois la page assemblée ???

J'ai à faire. Bonne soirée et à demain.
0
js95 Messages postés 773 Date d'inscription samedi 14 juin 2008 Statut Membre Dernière intervention 29 juillet 2014 353
30 juin 2010 à 18:45
Pour ce qui est de l'indexation, il est évident que ce sera mieux d'avoir des titres différents sur chaque page qu'un commun, et il en va de même pour les éléments <meta> description et keywords, qui permettent aux moteurs de recherche de cibler d'emblée la bonne page du site. Si ces éléments sont les mêmes sur toutes les pages, le moteur de recherche pourra orienter le visiteur vers n'importe-quelle page, et certainement une page qui ne correspondra pas précisément à celle recherchée, donc ça peut énerver les visiteurs.

Je pense que le vrai intérêt du fichier head est pour la cohérence du site, pour être sûr que les encodages et les styles seront les mêmes sur toutes les pages (doctype, meta content-type, liaisons css ou javascript, paramètres de langue, etc.)
0
Il faut profiter du caractere dynamique qu'offre PHP. Il y'a plusieurs solutions structurelles..mais dans ton cas ce qui resterait le plus simple ce serait de créer un modele de page commun à toutes les pages avec une variable $title puis avant l'appel de la page, il suffira de faire un print($title) au niveau de la balise.

Bon courage.
0
js95 Messages postés 773 Date d'inscription samedi 14 juin 2008 Statut Membre Dernière intervention 29 juillet 2014 353
2 juil. 2010 à 11:08
Moi j'utilise echo pour générer du html. Quelle est la différence avec print ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
js95 Messages postés 773 Date d'inscription samedi 14 juin 2008 Statut Membre Dernière intervention 29 juillet 2014 353
2 juil. 2010 à 11:17
La solution de Benjamin est intéressante car on peut dans ce cas mettre le
print($title)
dans le fichier head, sachant que la chaîne
$title
sera affectée dans chaque page pour avoir un titre unique par page.

Dans le fichier head (à côté des balises meta) :
<title>
<?php
print($title);
?>
</title>
ou
<title>
<?php
echo $title;
?>
</title>
ce que tu préfères.

Dans chaque page, le plus haut possible dans le fichier :
<?php
    $title='Titre de la page';
?>
0
js95 Messages postés 773 Date d'inscription samedi 14 juin 2008 Statut Membre Dernière intervention 29 juillet 2014 353
2 juil. 2010 à 11:22
ATTENTION : Je pense que cette solution ne marchera que si le bloc php à placer dans chaque page ci-dessus est placé avant l'inclusion du fichier head, car sinon il tombera sur la variable $title avant qu'elle ne soit définie, et le serveur indiquera probablement une erreur php.
0
js95 Messages postés 773 Date d'inscription samedi 14 juin 2008 Statut Membre Dernière intervention 29 juillet 2014 353
2 juil. 2010 à 11:37
J'explicite le code du début de chacune des pages (à adapter si besoin) :
<?php
    $title='Titre de la page';

    include('head.php');
?>
<meta name="description" content="blabla" />
<meta name="keywords" content="blabla" />
<!--les blabla sont à remplacer par le contenu approprié -->
</head>
<body> <!--etc.-->



sachant que le fichier head.php contient :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr" dir="ltr"> 

<head> 


<title>
<?php
echo $title;
?>
</title>


<meta name="verify-v1" content="MvjYkxX8rK+5of58EBOlE/BiEh3IrDjZB+/IukFmYe8="/> 

<meta name="verify-v1" content="KmprDa5CQGX0WxlAt0ur2ja130ELppowr7mAG/AVMPU=" /> 

<meta http-equiv="content-language" content="fr-ca" /> 
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1" /> 

<meta name="Identifier-url" content="https://www.monpaniergourmet.ca/" /> 

<meta name="robots" content="index,follow" /> 
<meta name="location" content="Montréal, Québec, Canada" />
c'est à dire tout le reste des en-têtes qui seront donc incluses dans toutes les pages.

Quand le navigateur assemble chaque page, on retrouve un code correct complet.
0
présentement, mon code du header est :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr" dir="ltr">

<head>
<meta name="verify-v1" content="MvjYkxX8rK+5of58EBOlE/BiEh3IrDjZB+/IukFmYe8="/>
<MYMETA>


si j'ai bien compris, il faut que je remplace :

<head>
<meta name="verify-v1" content="MvjYkxX8rK+5of58EBOlE/BiEh3IrDjZB+/IukFmYe8="/>
<MYMETA>

par ce code ?

<title>
<?php
echo $title;
?>
</title>
0
js95 Messages postés 773 Date d'inscription samedi 14 juin 2008 Statut Membre Dernière intervention 29 juillet 2014 353
20 juil. 2010 à 15:53
Non. Ce code est à ajouter après la balise <head>.
Je ne sais pas à quoi correspond le
<meta name="verify-v1" content="MvjYkxX8rK+5of58EBOlE/BiEh3IrDjZB+/IukFmYe8="/>
<MYMETA> 

probablement une balise meta pour le référencement, donc dans le fichier head. Le site est complexe, ceci dit par rapport au code d'origine, il n'y a aucune balise <meta> à supprimer, simplement certaines sont à déplacer (meta description et keywords).
Comme dans mon post ci-dessus, dans le fichier head, il y a :
-> le doctype
-> la balise html ouvrante
-> la balise head ouvrante
-> la balise title contenant le code nécessaire qui renvoie la chaîne de caractères stockée dans la variable $title dont le contenu sera différent d'une page du site à l'autre (affecté en début de page)
-> toutes les balises meta communes à toutes les pages, là tu mets toutes les balises <meta> sauf description et keywords.
C'EST TOUT

Toutes les pages contiennent :
-> le code php pour affecter le titre de la page + le code php pour inclure le fichier head :
<?php
    $title='Titre de la page';       //Titre à modifier pour chaque page

    include('head.php');         /*inclusion du fichier head. La chaîne entre guillemets simples contient le chemin relatif (ou absolu mais ce n'est dans ce cas pas possible de tester le site correctement) par exemple 'entetes/head.php' ou '../head.php' selon l'emplacement de head.php par rapport à la page actuelle. Ici en dehors de ce commentaire, le fichier head.php est dans le même dossier que la page.*/
?>

-> Tout le reste de la page (la suite), c'est à dire : les balises meta description et keywords, puis la balise </head> fermante, puis la balise <body> et son contenu.

BILAN : Il faut penser qu'au final la page affichée dans le navigateur est le résultat de l'assemblage des deux fichiers, après affichage, c'est comme s'il n'y avait qu'une seule page complète, d'ailleurs quand on demande au navigateur d'afficher la source de la page (inspecteur web sur Safari), le code php a disparu et on n'en voit que le résultat. Bien sûr si tu utilises un éditeur de pages web qui vérifie la saisie du code, son aperçu et le vérificateur n'appréciront pas d'avoir une moitié de page, il faudra se contenter des tests sur les navigateurs internet, mais de toute façon, c'est le résultat le plus important et pas les caprices de l'éditeur.
0
js95 Messages postés 773 Date d'inscription samedi 14 juin 2008 Statut Membre Dernière intervention 29 juillet 2014 353
Modifié par js95 le 20/07/2010 à 15:57
Oups! J'ai oublié, parce que c'est une évidence : il faut bien sûr mettre la balise fermante </html> à la fin de chacune des pages (sauf le head.php).
0
Les autres pages commencent par ex :

<!-- open content_inner class-->
<div class="content_inner">

<p> </p>
<img src="images/fr/tittre1.jpg" width="530" height="40" />
<p>Vous pouvez rechercher un cadeau sur notre site en naviguant par rayon.</p>
<p><img src="images/fr/trouver.jpg" width="529" height="193" /></p>

<p> </p>
<img src="images/fr/tittre2.jpg" width="530" height="40" />
<p>En cliquant sur son image ou sur "détails", vous obtenez la description détaillée du produit. </p>
<img src="images/fr/savoirplus.jpg" width="532" height="355" />



il faut que j'inclus :

<?php
$title='Titre de la page';

include('head.php');
?>
<meta name="description" content="blabla" />
<meta name="keywords" content="blabla" />
<!--les blabla sont à remplacer par le contenu approprié -->
</head>
0
js95 Messages postés 773 Date d'inscription samedi 14 juin 2008 Statut Membre Dernière intervention 29 juillet 2014 353
20 juil. 2010 à 15:58
Je viens de répondre un peu plus haut. Désolé pour l'attente mais je reviens de 2 semaines de vacances.
0