Metas et includes php

Nouveau WRInaute
Bonjour
Sur un site, j'ai un index.php avec au milieu ce code qui fait les include

Code:
<? if (is_file($url)) {include ($url);} else {include ('liens/accueil.html');} ?>

Mais, du coup, c'est toujours les memes métas en haut de cet index (et de toutes mes pages en include du coup) et le meme titre.

Quelqu'un pourrait il me donner la methode pour pouvoir les changer (en php surement) ? Sachant que toutes mes pages en include sont en html. :?:
Merci bcp
 
WRInaute passionné
Comprends rien..

C'est quoi ce fichier liens/accueil.html ?
Qu'est ce qu'il y a dedans ??? le header ???

Perso je fais

mes pages :
Code:
<?php 
$title=...;
$meta_desc=...;
$meta_keywords=...;

include("head.php");

.... (le contenu de la page)
?>

le fichier head.php (entête)
Code:
<?php 
if (empty($meta_desc)) $meta_desc=...;
if (empty($meta_keywords)) $meta_keywords=...;
?>
<html>
<head>
<title><?php echo $title ?></title>
....(idem meta)
</head>
</body>
 
Nouveau WRInaute
non ce nest opas le header c'est juste du texte sans balise particuliere.

Avec ta methode, il faut que je passe toutes mes pages html en php pour qu'il gère les variables :? ?

et le fichier head.php c'est toujours le meme ? grace a ça tu as des title et description differentes ?

Je crois que je vais réfléchir à ta methode et que je vais faire comme ça

merci pour ton aide
 
Nouveau WRInaute
et que met tu comme code en haut du index.php ?
car je ne peux pas faire include header.php dans mes pages car ca va etre collé au code de la page et il faut que ce header soit au début de l'index.php, non au mileiu au dessus de ma page
merci :D
 
WRInaute passionné
Toutes tes pages divent être en php, sinon pas de include() possible.
Il faut que tu réfléchisse aux choses que tu retrouves sur toutes tes pages :
- certainement le header (de la définition du DOCTYPE jusqu'au</head>
- certainement un menu commun...

ensuite tu écris la page header.php qui génère cette partie commune (en laissant le possibilité par des déclarations de variables de modifier certains trucs : titre, Métas, menu actif ....)

Pour chacune de tes pages il faudra appeler ce header.php au début. (juste apres les requêtes à la base de données si tu en as une).

PS : tu peux faire la même chose avec le bas de page en incluant un footer.php (partenaires, ....)

a+
 
Nouveau WRInaute
merci pour tes réponses, mais meme en reflechissant je ne vois pas quel code mettre en haut dans mon index.php :roll:
Je comprends bien ce que tu me dis mais j'ai un index.php avec un menu et je fais a chaque fois un include au milieu de cet index, donc mes futures pages en fonction du $url auront toutes la meme structure (index.php) avec juste le milieu qui change.
je ne peux donc pas faire de include head.php dans mapage.php que j'inclu en plein milieu.
Il me faudrait une ligne a mettre en haut de index.php a la place des metas :?:
merci pour tout
 
WRInaute passionné
ok, j'ai compris ton problème.

Il y a 2 solutions :

La première (la tienne) consiste à avoir 1 page index.php commune pout tout ton site dans laquelle tu fais un include "de contenu" au milieu.
inconvegnant (hors rewriting) : un nom unique pour toutes tes pages et un paramètre que tu traines. ex: index.php?page=accueil
Si tu veux garder cette solution il faut avant de faire l'include au milieu de la page définir les meta grace au paramètre $page.

tu pourrais avoir :

index.php
Code:
<?php
if ($page=...) { $titre="...." ; $meta="..." ; }
else if ($page=...) { $titre="...." ; $meta="..." ; }
...
else  { $titre="...." ; $meta="..." ; }

echo"
<title>".$title."</title>
<meta ......
... le haut commun de mes pages
........";

// inclusion de mon contenu
// ATTENTION C'EST EXACTEMENT CE QU'iL NE FAUT PAS FAIRE
include($page.".php");

... bas commun de mes pages

?>

ATTENTION
le code include($page.".php"); présente une faille de sécurité : n'importe qui pourrait essayer de faire executer n'importe qulle page a ton server en appelant un truc du genre
index.php?page=http://page_exterieure.
Il faut vérifier que $page ne prenne pas une valeur indésirée...



La deuxième (la mienne) consiste à avoir n pages toutes différentes pour les n pages de ton site, avec dans chacune d'elles, un include au début pour définir les parametres communs. (voir mon post précédent).
Cette solution est a mon avis la meilleure.

a+
 
Discussions similaires
Haut