Balises <head> et <title> avec du php

Bonjour a tous, j’ai de nouveau une petite question : j’ai ma page qui est en php et qui est dynamique (il y a des scripts en php dedans) J’aimerai qu’en fait le script en php change le titre de la page, cependant il ne peut etre placé qu’après les balises head, donc dans les balises body

J’ai pensé à mettre tout simplement <title>… dans la partie body, ce qui marche sous IE6 mais qu’en est-il des autres navigateurs ? Et que cela fera-t-il poru les moteurs de recherche, cela désaventagera-t-il mon site ?
Si oui , merci de me dire quels autres solutions s’offrent alors a moi

Merci d’avance

NC

non.

HTML (et XHTML) est un langage structuré. C’est pas parce que des abrutis de développeurs pas foutus de suivre les standards font un navigateur qui supporte qu’on mette tout n’importe où qu’il faut le faire.

<title> va toujours dans l’élément <head>, point à la ligne.

Maintenant si tu veux changer le titre, et que ton php ne modifie que le corps du document - <body> donc - c’est que tu as une sérieuse erreur de design.

Pour la résoudre, faut voir ce que tu as employé comme technique (pseudo frame? un fichier php qui inclut l’entête du document, le corps, et le pied du document, etc)

Ton problème à une solution propre, et certainement simple, mais qui ne nécessite pas de tricher avec les standards (imagine que ton électricien se mette à tricher sur tes prises électriques …)

Voilà

(ne le prend pas mal ceci dit)

C’est cela, c’est parce que j’utilise les pseudos frames, et le ‘corps’ de la page doit faire varier le titre : je pensais mettre une structure en switch dans head , cependant, quand on a un contenu comme un forum et qu’on veut mettre le nom du message dans le titre, ce n’est pas pratique :frowning: Qu’y a t il comme autres solutions ?

tu fais une variable - ou une constante - appelée $titre, et tu l’affiche dans <title>, en prenant soin de changer $titre à chaque fois?

donc selon vous, on a cela :

<html>
<head>
<?php echo $titre; ?>
</head>

<body>
<?php
// La structure en switch
... $titre='Le titre de cette page du forum'; ?>
</body>
</html>

Cela affichera ‘le titre de cette page du forum’ en titre ?!

Non, tu t’y prend à l’envers.

Que fais tu dans ton switch?

Typiquement ça doit être ça le pseudo framing :


<?php
$a = array(
   'machin' => array('titre', 'machin.php'),
   'index' => array('index', 'index2.php')
);

if ( isset($_GET['page']) && isset($a[$_GET['page']]) {
  list($title, $file) = $a[$_GET['page']];
} else   list($title, $file) = $a['index'];

require 'header.php';
require $file;
require 'footer.php';
?>

Et header.php :

<html>
 <head>
  <title><?php echo $title; ?></title>
 </head>
<body>

(je te laisse imaginer pour footer.php)

Dans le bout de code que tu fournis, tu suppose que php lis le code de bas en haut… sinon $titre ne sera jamais définit :slight_smile:

Alors dans mon switch je fais un include de la page passé par l’url mais dans ce que vous donnez, je ne comprends pas quelques choses : les fonctions array et require, à quoi servent-elles (je suis débutant en php :))

ce sont des instructions. array permet de construire un tableau, et la seconde permet d’inclure un autre fichier php dans une page. (équivalent de include, en plus restrictif)

et comment exploiter le tableau avec array ?

en commencant par apprendre le PHP de A à Z

C’est mesquin mikmak. C’est ma réplique que tu as volé :confused: s