Aller au contenu

[resolu]Changer la balise title en PHP


Sujets conseillés

Posté (modifié)

Bonjour,

j'aimerais changer la balise title au cours du traitement de ma page PHP. (Eventuellement même, rajouter/concaténer du texte à cette balise). Je me perds dans la doc officielle alors je fais appel à vous :)

D'avance merci,

A bientot.

Modifié par MyMaty
Posté

En effet, c'est pas ça.

Pour des raisons de convenance, je voudrais modifier / rallonger mon titre plus loin dans la page. Faire les traitements avant la balise title serait très chiant.

Posté
Faire les traitements avant la balise title serait très chiant.

Pourquoi ça ??

Je ne vois pas comment le traiter plus tard...

à partir au moment ou c'est envoyé au navigateur, y'a plus moyen de faire grand chose...

Posté

A moins d'utiliser le cache et de n'envoyer le résultat qu'une fois que le titre serait calculé.

Avec:

      ob_start(); // on met le résultat en buffer
     // les opérations en php ou non
     $page_data=ob_get_contents(); // contenu du buffer dans $page_data
     print $page_data;
     ob_end_clean(); // on nettoie et vide le buffer

Mais c'est probablement utiliser un marteau piqueur pour casser une noix, à mon humble avis ;)

Dan

Posté

Merci à vous deux.

Il semblerait donc qu'il n'y ait pas de fonction PHP pour changer la balise title d'une page HTML. Je vais faire mes traitements avant de fixer mon en-tête alors.

A bientot,

merci encore.

Posté
A moins d'utiliser le cache et de n'envoyer le résultat qu'une fois que le titre serait calculé.

Avec:

      ob_start(); // on met le résultat en buffer
     // les opérations en php ou non
     $page_data=ob_get_contents(); // contenu du buffer dans $page_data
     print $page_data;
     ob_end_clean(); // on nettoie et vide le buffer

Mais c'est probablement utiliser un marteau piqueur pour casser une noix, à mon humble avis ;)

Dan

<{POST_SNAPBACK}>

Oui, j'ai bien pensé à cette solution, mais tu fais comment pour le modifier le titre une fois que tout est stocké ? avec un ereg() ??

Assez lourding, non ??

Posté

Salut

J'ai un souci du même genre : je récupère le nom du fichier php dès l'entrée et je le compare à une table qui me sort le title (ça me permet d'avoir un header commun à toutes les pages tout en ayant un title distinct) mais comme je suis une bille en sql et une brêle en php, je galère comme un fou.

Donc la solution m'intéresse, je tâcherai de vous poster mon code ce soir de la maison et vous essaierez de ne pas vous moquer. :-)

Pour l'instant je le fais à partir d'un fichier et d'un array et ça fonctionne mais le site va grossir et j'aimerais passer à une gestion plus rigoureuse.

Posté

Je suis en train de bricoler un site, et même chose j'ai commencé par une balise title statique dans une page php, pour finalement me rendre compte en milieu de page que selon le résultat d'une requëte sql donnée, ça serait pas mal de changer le title dans certains cas ;-) J'ai tout simplement remplacé mon title statique pour un bloc php, executé ma requête en début de page en gardant sous le coude les autres résultats de la requête pour le milieu de page.

Posté

Voici le code, je vous préviens il est encore touffu, soyez indulgents, c'est un fichier test et je n'ai pas encore tout bien compris ce que j'utlise, notamment la différence entre require et include, par exemple :

<!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">
<head>
<?php
function remSuffix ($inputString)
{
$origString = $inputString;
$inputString = explode(".",strrev($inputString),2);
if (strlen($inputString[1])<>0) {
return strrev($inputString[1]);
} else {
return $inputString;
}
}
$variableatester = $_SERVER['PHP_SELF'];
$bingo = remsuffix ($variableatester);
$thename = explode("/", $bingo);
$GLOBALS["bloodyfilename"] = $thename[1]; //on récupère le nom du fichier ouvert sans le debut et sans le .php (ca marche, je l'ai pique quelque part :-) )
$truc=$GLOBALS["bloodyfilename"];

mysql_connect("localhost", "xxxxx", "xxxxxxxx");
mysql_select_db("chefprestige_com_-_base_de_donnees");
$reponsefichier = mysql_query("SELECT * FROM structure_du_site where fichier=$truc");//j'ai un message d'erreur quand j'utilise la variable truc et pas si je mets la donnée entre simple quotes
while ($donnesdufichier = mysql_fetch_array($reponsefichier) )
{
$GLOBALS["codification"]=$donnesdufichier['codification']; // on met les donnees dans des superglobales, j'utilise les superglobales parce que les variables servent tout le long de la page dans différentes fonctions
$GLOBALS["designation"]= $donnesdufichier['designation'];
$GLOBALS["fichier"]= $donnesdufichier['fichier'];
$GLOBALS["commentaire"]= $donnesdufichier['commentaire'];
$GLOBALS["image"]= $donnesdufichier['image'];
}
mysql_close();

function testimage($codif)
{
mysql_connect("localhost", "xxxxx", "xxxxxxx");
mysql_select_db("chefprestige_com_-_base_de_donnees");
$reponse = mysql_query("SELECT * FROM structure_du_site where codification=$codif"); //cette requete qui fonctionne de la meme facon tourne parfaitement !
while ($donnees = mysql_fetch_array($reponse) )
{
$codification=$donnees['codification']; // on met les donnees dans des variables
$designation= $donnees['designation'];
$fichier= $donnees['fichier'];
}
mysql_close();
$imagename="/var/www/html/images/".$codif.".jpg";
if (file_exists($imagename)) {
echo " <a href=\"http://www.chefprestige.com/images.php?img=".$codif."\" target=\"images\" class=\"lien_ext\" title=\"Image associée\"><img src=\"http://www.chefprestige.com/images/images.jpg\" alt=\"Image associée\"/></a> ";
}
else {
echo " ";
}
}

function lienimage($codif)
{
mysql_connect("localhost", "xxxxx", "xxxxxx");
mysql_select_db("chefprestige_com_-_base_de_donnees");
$reponse = mysql_query("SELECT * FROM structure_du_site where codification=$codif");//on recupere les donnees dans la table
while ($donnees = mysql_fetch_array($reponse) )
{
$codification=$donnees['codification']; // on met les donnees dans des variables
$designation= $donnees['designation'];
$fichier= $donnees['fichier'];
}
mysql_close();
$filename="/var/www/html/".$fichier.".php";
if (file_exists($filename)) {
echo "<a href=\"http://www.chefprestige.com/".$fichier.".php\" target=\"_self\" class=\"lien\"> ".$designation."</a>";
}
else {
echo $designation;
}
testimage($codif);
}
?>
<title>
<?php
echo "Chef Prestige - ";
echo $GLOBAL["designation"];
?>
</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />

etc.

Tout ça se trouve dans un fichier qui est appelé par un "require" au début de chaque page.

J'ai le message d'erreur "Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in -http://www.chefprestige.com/includes/***** on line 25" et quand je code la variable en dur dans la requête elle passe, mais justement je veux que ce soit une variable, c'est bien ça qui m'intéresse.

Posté
j'ai un message d'erreur quand j'utilise la variable truc et pas si je mets la donnée entre simple quotes

C'est bien entre simple quotes qu'il te faut mettre ta variable :

$reponsefichier = mysql_query("SELECT * FROM structure_du_site where fichier='".$truc."'");//

Anonymus.

Posté

Houlà, du diable si j'avais pensé à ça. Merci !

Et merci de ne pas avoir moqué mon code usine à gaz !

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...