MyMaty Posté 19 Novembre 2005 Posté 19 Novembre 2005 (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é 20 Novembre 2005 par MyMaty
Compte supprimé Posté 19 Novembre 2005 Posté 19 Novembre 2005 <title><?php echo "ton beau titre"; ?></title> Je suppose que ce n'est pas ça qui te pose problème ??
MyMaty Posté 19 Novembre 2005 Auteur Posté 19 Novembre 2005 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.
Compte supprimé Posté 19 Novembre 2005 Posté 19 Novembre 2005 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...
Dan Posté 19 Novembre 2005 Posté 19 Novembre 2005 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
MyMaty Posté 19 Novembre 2005 Auteur Posté 19 Novembre 2005 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.
Compte supprimé Posté 19 Novembre 2005 Posté 19 Novembre 2005 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 ??
Fun Posté 25 Novembre 2005 Posté 25 Novembre 2005 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.
Urban Posté 25 Novembre 2005 Posté 25 Novembre 2005 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.
Fun Posté 25 Novembre 2005 Posté 25 Novembre 2005 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><?phpfunction 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 quoteswhile ($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 tablewhile ($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.
Anonymus Posté 28 Novembre 2005 Posté 28 Novembre 2005 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.
Fun Posté 28 Novembre 2005 Posté 28 Novembre 2005 Houlà, du diable si j'avais pensé à ça. Merci ! Et merci de ne pas avoir moqué mon code usine à gaz !
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant