BZHcool Posté 3 Septembre 2003 Posté 3 Septembre 2003 Bonsoir tout le monde, J'aimerais faire changer de titre à mes pages en PHP... vous me direz, facile... il suffit de changer le titre dans la balise!!! Et c'est là le problème (pour moi ) :!: En effet mes pages sont générées automatiquement dans une page index.php grace à des includes qui font apparaitre le résultat d'une requete... donc pour h**p://www.monsite.com/links/?action=voir&val=22 ou pour h**p://www.monsite.com/links/?action=voir&val=112 j'ai le même titre de page! J'amerais bien avoir deux titres bien distincts... c'est possible Docteur(s)
Anonymus Posté 3 Septembre 2003 Posté 3 Septembre 2003 Bonsoir, L'une des solutions est de mettre tout le texte en variable, et ainsi tu peux le modifier à la fin.. Ainsi, au lieu de faire : <? echo"<titre>un titre</titre>"; echo"<body>un body</body>"; ?> tu fais : <? $titre="<titre>un titre</titre>"; $body="<body>un body</body>"; echo $titre; echo $body; ?> Ainsi, tu peux générer le titre après le body, en fonction de la page que tu généres au cours du script... M'enfin. Je pense que t'as compris Pour l'autre solution, je la cherche, et si quelqu'un la connait, je suis preneur.. A+, Anonymus.
Cariboo Posté 3 Septembre 2003 Posté 3 Septembre 2003 En fait, tu peux mettre ce que tu veux comme données issues de ta base au niveau de ta balise title, à la condition que ta requête SQL soit placée avant la ligne où tu génères la balise title. Si ton include ne contient que la requête : il suffit que tu le places avant la balise <TITLE> et tu pourras exploiter le contenu des variables qui ont servi à récupérer le résultat de ta requête dans la balise title. Si ce n'est pas le cas (il y'a aussi du code qui sert à générer du HTML) tu extrais la requête SQL de l'include pour la mettre dans la page, ou tu écris une deuxième requête SQL que tu places avant title. Bref, ce ne sont pas les solutions qui manquent
BZHcool Posté 3 Septembre 2003 Auteur Posté 3 Septembre 2003 Dans mon cas ma page index.php c'est une partie en html et des includes php... donc je n'ai pas : Ainsi, au lieu de faire : <? echo"<titre>un titre</titre>"; echo"<body>un body</body>"; ?> Tout mes méta dont le titre sont dans les balises <head></head> et mes includes dans entre <body></body> En fait il faut que je joue avec ma base SQL pour faire appraitre un titre qui y sera présent...
Dan Posté 3 Septembre 2003 Posté 3 Septembre 2003 Salut BZHcool, Ton problème est simple, il te suffit de remplacer tes balises <title> dans tes includes PHP. Au lieu d'avoir: <title>mon titre figé que j'aimerais changer</title> tu mets: <title><?=$mon_titre ?><title> Il suffit de t'assurer, avant de faire ton include, que ta variable $mon_titre soit positionnée. exemple: <?php$mon_titre="ça c'est du titre au moins";include('tonfichier_include");?> Cela suppose que ta requête SQL soit effectuée avant, si tu extrais le titre de la base. Dan
BZHcool Posté 3 Septembre 2003 Auteur Posté 3 Septembre 2003 salut et merci Dan, Tu écris : Il suffit de t'assurer, avant de faire ton include, que ta variable $mon_titre soit positionnée. exemple: CODE <?php $mon_titre="ça c'est du titre au moins"; include('tonfichier_include"); ?> Cela suppose que ta requête SQL soit effectuée avant, si tu extrais le titre de la base. et là je coince... car ce code que tu me donne il faut que je mette dans mon Body de la page index.php mais et que je fasse un script (tonfichier_include) pour aller chercher dans une base de donnée mes différents titres... sauf que là tu mets : $mon_titre="ça c'est du titre au moins" donc si je mets ton exemple de code je comme l'impression que c'est "ça c'est du titre au moins" qui va se mettre sur toutes mes pages!
Olivier Posté 3 Septembre 2003 Posté 3 Septembre 2003 1 requete SQL 2 alimentation de la variable $titre 3 echo dans la balise <title> 4 echo dans la balise <h1> Une démo !! une demo !! Bon Bon ok http://phortail.org De plus je gère le triple titre - le nom du site - le nom de la rubrique - le nom de la rubrique et de l'article selon le niveau de navigation
Dan Posté 3 Septembre 2003 Posté 3 Septembre 2003 sauf que là tu mets : $mon_titre="ça c'est du titre au moins" donc si je mets ton exemple de code je comme l'impression que c'est "ça c'est du titre au moins" qui va se mettre sur toutes mes pages! Ben oui ! Ce n'est qu'un exemple. Cette chaîne devrait plutôt être le résultat d'une extraction de ta base de données. Sinon, regarde du côté des systèmes de templates. Chacun a son favori, mais perso j'utilise PatTemplate que tu peux trouver sur le site http://www.php-tools.de/site.php. C'est assez facile à maîtriser et très puissant. C'est avec cela (et pas mal de PHP) que j'ai fait mes sites immobilier. Dan
BZHcool Posté 19 Septembre 2003 Auteur Posté 19 Septembre 2003 Merci Gilbert, Mais Cariboo m'a aidé à créer un petit code bien sympa qui inclus le titre de mes variables directement dans mon titre. Excusez moi mais c'est vrai que j'aurais du signaler dans ce post que le problême était réglé
gb76 Posté 1 Novembre 2003 Posté 1 Novembre 2003 Bonjour tout le monde, j'ai suivi ce post avec interet parce que j'aimerais aussi avoir un affichage de titre dynamique et le script de cariboo annoncé par BZH (vive la Bretagne) m'intéresserait (et je ne suis sans doute pas le seul) Serait il possible de la poster ici ? ou via mail, mais ici ce serait mieux pour les autres. Merci d'avance, et à bientôt, Gilles.
BZHcool Posté 1 Novembre 2003 Auteur Posté 1 Novembre 2003 Bonjour Gilles, C'est vrai que celà fais déjà une ou deux fois que je réponds à cette question, donc voici le mail de cariboo que j'avais reçu à l'époque, j'ai juste changé les fichiers crées: Oui il y'a beaucoup plus simple : 1. Tu crées un fichier baptisé (par exemple) : codes_france.inc.php 2. Dans ce fichier, tu crées un tableau de variables avec la correspondance code région et traduction en clair, en utilisant la syntaxe suivante : (les codes doivent être faux, c'est pour t'expliquer le principe...) <?php $code_france[24]="Dordogne"; $code_france[33]="Gironde"; $code_france[40]="Landes"; ?> Tu places la commande include("codes_france.inc.php") au début de chaque fichier php qui génère tes pages annuaires... (apparemment il n'y a qu'un seul fichier) et quand tu arrives à la balise title, tu écris <? echo "<title>".$code_france[$val]." : annuaire des sites</title>"; ?> et le tour est joué ... Ce truc est simple, il a un avantage : tu mets ce que tu veux comme texte correspondant à une région dans title, mais il a un inconvénient : il faut mettre à jour le fichier à chaque modif dans la table des régions... Si tu veux, je peux t'envoyer une autre solution qui tire les infos de ta base sql. C'est tout simple il suffit juste de suivre les étapes.
gb76 Posté 1 Novembre 2003 Posté 1 Novembre 2003 Merci pour ta réponse : sympa je vais regarder de ce côté Personnellement je pensais à un script qui 1/récupère l'url courante (variable d'environnement je crois) 2/nettoie le code (avec les expressions régul) ou une liste de trucs à jeter (par exemple l'extension) et remette un peu en forme (casse, espacements), pas la peine de faire trop compliqué 3/on réinjecte la variable dans le titre. Je n'avais pas pensé l'idée de cariboo, je vais voir. En tout cas merci ; si tu as d'autres idées à ce propos n'hésite pas. Bon we, Gilles. vive les Bretons (tu connais une jolie célib de 20-30 ans, bretonne et pas compliquée ?)
Anonymus Posté 1 Novembre 2003 Posté 1 Novembre 2003 Bonjour, ceci devrait t'aider: $current_url = parse_url(getenv("path_info"));echo "<br><b>file=".basename($current_url['path'],".php")."</b>"; avec la fonction postée ici : http://www.webmaster-hub.com/index.php?sho...findpost&p=5918 Anonymus.
Anonymus Posté 1 Novembre 2003 Posté 1 Novembre 2003 et les variables d'environnement ?? Ici : echo"<table border=1>";foreach ($envs as $env) if ( isset($$env) ) echo "<tr><td>".strtolower($env)."</td><td>${$env}</td></tr>"; echo"</table>"; Anonymus.
gb76 Posté 2 Novembre 2003 Posté 2 Novembre 2003 Bonjour merci pour cette portion de code ; je conserve le script et je vais tester tout ça. A bientôt, Gilles.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant