Bonjour,
Il me semble que c'est mieux perçu par google (entre autre) que le title et le meta description (qui se trouvent dans le header) soient différent sur chaque page. Hors ce n'est pas mon cas et je ne comprends pas comment mettre ça en place.
Je pense que je devrai utiliser le PHP mais je ne sais pas quoi faire/dire...
Voici mon index.php pour mieux comprendre ma structure :
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>title à remplir</title>
<meta name="keywords" content="à remplir" />
<meta name="description" content="à remplir" />
</head>
<body>
<div id="page">
<div id="header">
<?php include('inc/header.php');?>
</div>
<div id="menu">
<?php include('inc/menu.php');?>
</div>
<div id="contenu">
<?php $pagesAutorisees = array('accueil', 'portfolio', 'creation-photoshop', 'creation-flash', 'contact', 'montage-photos', 'actualites', 'objectifs', 'deo-nature', 'ecole-alternance', 'cine-inscription', 'shakira', 'cine-etudiant', 'vendre-maison');
if (!empty($_GET"contenu"]) && in_array($_GET"contenu"], $pagesAutorisees)) include('pages/'. $_GET'contenu'].'.php');
else include ('pages/accueil.php');?>
</div>
<div id="footer">
<?php include('inc/footer.php');?>
</div>
</div>
</body>
</html>
Je crois que pour le meta keyword, il n'y a pas besoin de changer en fonction des pages, si?
Merci de me guider...
Bonne journée
PS: Bonne idée ce forum
Hello, utilise isset() ;)
Pense à mettre un else pour un titre par défaut. ^^
Le isset permet de savoir si une ou plusieurs $variables sont chargé. (Prend en paramètres les variables (ex: isset($_GET'lol'],$mdr,$huhu,$pwet) ))
if(isset($_GET'contenu']) && in_array($_GET'contenu'], $pagesAutorisees)){ // c'est ma ligne 25
echo '<title>'.$tab$_GET'contenu']]'title'].'</title>';
echo '<meta name="description" content="'.$tab$_GET'contenu']]'description'].'" />';
} else {
// Title par défaut, n'oublie pas les écho :p
}
Ce que tu peux faire, c'est créer un tableau avec les différents textes que tu souhaites pour tes meta et ton title comme ceci.
Tout d'abord, mets ton tableau $pagesAutorisees avant le Doctype.
Ensuite, construis un tableau de cette forme :
<?php
$tab = array(
"accueil" => array(
"title" => "Bienvenue sur mon site !",
"description" => "Description de la page d'accueil du site"
),
"portfolio" => array(
"title" => "Voici mon portfolio",
"description" => "Description de la page de ton portfolio"
)
);
?>
À compléter avec les différentes pages que tu as, en gardant la même forme.
T'as plus qu'à faire un test dans le head au niveau comme ça :
<?php
if(in_array($_GET'contenu'], $pagesAutorisees)){
echo '<title>'.$tab$_GET'contenu']]'title'].'</title>';
echo '<meta name="description" content="'.$tab$_GET'contenu']]'description'].'" />';
}
?>
Après, y'a peut être mieux à faire, mais ça devrait marcher.
Bonjour,
Merci, ça marche presque il y a un petit soucis.
Quand je navigue sur mes pages, le title et description changent. Mais quand j'arrive sur mon site la première fois j'ai un message d'erreur qui s'affiche tout en haut de mon site :
Notice: Undefined index: contenu in D:\wamp\www\portfolio\index.php on line 25, et à cette endroit il y a :
<?php
if(in_array($_GET'contenu'], $pagesAutorisees)){ // c'est ma ligne 25
echo '<title>'.$tab$_GET'contenu']]'title'].'</title>';
echo '<meta name="description" content="'.$tab$_GET'contenu']]'description'].'" />';
}
?>
Merci beaucoup pour ton aide...
Hi!
Tu peux m'expliquer comment utiliser isset()? J'ai regardé sur le net mais avec mon bout de code je vois pas comment faire...
Pour le else, j'avais pensé à faire :
else{
'<title> titre par defaut</title><br/>
<meta name="description" content="description par defaut"';
}
Mais il ne se passe rien, peux-tu me guider?
Merci beaucoup pour ton aide!
Bonne soirée
Merci beaucoup! ça marche.
Effectivement si je ne mais pas de echo, je ne risque pas d'aller loin...
Bon week-end
Ah oui, effectivement, j'avais zappé le cas de l'inexistence de $_GET'contenu'] :p
Ravi d'avoir pu t'aider.