IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Afficher nom d'un article dans <title>


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Août 2010
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Août 2010
    Messages : 216
    Points : 96
    Points
    96
    Par défaut Afficher nom d'un article dans <title>
    Bonjour,

    Je souhaiterais afficher dans ma balise <title> le nom de l'article affiché.
    Le problème est que l'appel à ma base de données se fait plus bas dans ma page et que je ne peux l'afficher plus haut.

    Comment faire ?
    Dois-je faire un appel à ma base avant ma balise <title>?

    Merci par avance,

    Aurélien
    Salutations à tous les amis du forum Développez

    Monsieur GRrr, bulletins tranchants pour adultes consentants !

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2010
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2010
    Messages : 77
    Points : 92
    Points
    92
    Par défaut
    oui je pense

  3. #3
    Membre régulier
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Août 2010
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Août 2010
    Messages : 216
    Points : 96
    Points
    96
    Par défaut
    Désolé je suis newbie et je galère.

    J'ai tenté de faire un appel à ma base avant ma balise title mais je tourne en rond car il ne peut pas avoir le même id que celui de mon article affiché dans ma page.

    Y'a t'il une solution pour les lier ?

    Est-il possible de récupérer l'appel fait a ma base mysql dans ma page pour l'utiliser dans mon <title> ?

    Merci par avance,

    Aurélien
    Salutations à tous les amis du forum Développez

    Monsieur GRrr, bulletins tranchants pour adultes consentants !

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2010
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2010
    Messages : 77
    Points : 92
    Points
    92
    Par défaut
    fais voir ton code stp !! Je vais regarder

  5. #5
    Membre régulier
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Août 2010
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Août 2010
    Messages : 216
    Points : 96
    Points
    96
    Par défaut
    Merci beaucoup

    Voici le code de ma page article :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    <?
    /** 
     * Edit par Aurélien le 28/08/2010
     *
     * Page news.
     *
     *	Affiche le texte et les infos d'une news de type : News-reportage-cinema....
     *
     */
     
    //includes
    /**/ require_once("./includes/inc_commentairesFunctions.php");
    /**/ require_once("./includes/inc_newsFunctions.php");
     
    //on définie une news par défaut
    $nbrNewsId 			= 100;
    $pageId 			= 1;
    $IsShowCommentaire = false;
     
    // initialise les variables GET
    if ( isSet($_GET['pageId']) && is_numeric($_GET['pageId'])) { $pageId	= $_GET['pageId']; }
     
     
    //recupération des varibales GET.
    if ( !isSet($_GET['id'])
    	||	strlen($_GET['id']) == 0 
    	||  strlen($_GET['id']) > 5
    	||  !is_numeric($_GET['id'])
    	) {
     
    		//on vérifie le passage de l'id par la selection de page Commentaire
    		if ( ( isSet($_GET['linkId']) && strlen($_GET['linkId']) != 0  && is_numeric($_GET['linkId']) ) ) {
     
    				$nbrNewsId = $_GET['linkId'];
    				$IsShowCommentaire = true;
     
    		} else {
     
    	// si l'id n'est pas passée en variable  
    	setErrorMessage(L_ERROR_NEWS);
    	?>
    	<script>
    		window.location = '../n63show.php';
    	</script>
    <?	exit(); 
    		}
     
    } else {
     $nbrNewsId = $_GET["id"];
    }
     
     
    // par défaut l'affichage des commentaire est false.
    if(isSet($_GET['Show']))
    {
    	$IsShowCommentaire = $_GET['Show'];
    } 
     
    // je selectionne le news en cours
    $newsReq	= getNewsFromId($nbrNewsId );
    $newValue 	= mysql_fetch_array($newsReq);
     
    // si la news n'existe pas
    if ( !$newValue ) { 
    	setErrorMessage(L_ERROR_NEWS);
    	?>
    	<script>
    		window.location = '../n63show.php';
    	</script>
    <?	exit();
    }
     
    // j'incrémente de 1 
    $newsvue = $newValue['NEWS_VUE'] + 1;
     
    // je met la base de donnée a jour 
    UpdateNewsStat($nbrNewsId, $newsvue);
     
    //je change la balise Color
    $newValue['NEWS_TEXT'] = changeStringBalise($newValue['NEWS_TEXT'], 'color', '<span class="gentitle">');
    //je change la balise title
    $newValue['NEWS_TEXT'] = changeStringBalise($newValue['NEWS_TEXT'], 'title', '<span class="title">');
    ?> 
     
    <table width="580" border="0" align="center" cellpadding="0" cellspacing="0">
      <tr> 
        <td> 
     
    	  <fieldset>
    	  	<legend class="legend"><? echo($newValue['CATEGORIE']) ?>&nbsp;</legend>
     
          <table width="95%" border="0" align="center" cellpadding="0" cellspacing="0">
            <tr> 
              <td> 
                <table width="100%" border="0" cellspacing="0" cellpadding="0">
                <tr> 
     
     
                    <td><p align="left" class="title"><strong><? echo($newValue['NEWS_TITLE']) ?></strong>
                      </p>
                      <p align="left"> Par <? echo($newValue['NEWS_POSTER']) ?>, 
                        publié le <? echo(moveDateString($newValue['NEWS_DATE'])) ?> <br>
                      </p></td>
                  </tr>
                  <tr> 
              <td height="20" colspan="2" valign="top"><hr /></td>
            </tr>
            <tr> 
              <td height="20" colspan="2" valign="top"><hr /></td>
            </tr>
                  <tr> 
     
     
                    <td>
                    <p align="center"><img src="/coope/<? echo($newValue['NEWS_ARTICLE_IMAGE']) ?>" width="450" /><br />
                </p>
                    </td>
                  </tr>
                </table>
                <br>
              </td>
            </tr>
            <tr> 
              <td><p align="left"><? echo($newValue['NEWS_TEXT'])  ?><br />
                </p></td>
            </tr>
          </table>
    	 </fieldset>
     
          <table width="95%" border="0" align="center" cellpadding="0" cellspacing="0">
            <tr>
              <td> <p><strong> 
                  <?	  // on calcul le nombre de commentaires pour cette page  !!  
    		  $nTotalcommentaires	= countAllMessage("news",$nbrNewsId,$newValue['NEWS_DATE']);
     
    		// pour afficher le "s" au plurieurs de commentaire
    		if ( $nTotalcommentaires > 1 ) {
     
    				$comm_texte  = "commentaires";
     
    		} else {
     
    				$comm_texte  = "commentaire";
    		} ?>
                  <br>
                  <img src="/images/img_fleche_agenda.gif" width="15" height="15" align="absmiddle" /> 
                  Vos commentaires :</strong> il y a <b><span class="gentitle"><? echo($nTotalcommentaires)?></span></b> 
                  <? echo($comm_texte)?><br />
                  <?  if  ( !$IsShowCommentaire ) { ?>
                  <span class="gentitle">[</span> <a href="n63show.php?link=news&amp;id=<? echo($nbrNewsId) ?>&amp;Show=true">Voir 
                  les commentaires et postez le votre</a> <span class="gentitle">]</span> 
                  <br />
                  <? } ?>
                </p></td>
            </tr>
          </table>
          <br>
          <?	
    		  if  ( $IsShowCommentaire ) {
    		  		 //on affiche la liste des commenatires
    				 showMessageList("news",$nbrNewsId,$link,$nTotalcommentaires,$pageId);
     
          		?>
          <div align="right">[ <a href="/n63show.php?link=commentaire&amp;commentaireId=<? echo($newValue['NEWS_ID']) ?>&amp;commentaireType=News">Ajouter 
            un commentaire</a> ]</div>
          <br /> 
          <? } ?>
          <p align="left">&nbsp;</p></td>
      </tr>
    </table>
    Aurélien
    Salutations à tous les amis du forum Développez

    Monsieur GRrr, bulletins tranchants pour adultes consentants !

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2010
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2010
    Messages : 77
    Points : 92
    Points
    92
    Par défaut
    1 ere solution qui permet de changer ton title en cours de page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript">document.title=('<?=$newValue['NEWS_TEXT']?>');</script>
    Le probleme c'est que les bots ne vont pas referencer le title je pense ...

    Donc deuxieme solution c'est le faire en php mais juste une question dans ton code a quoi correspond changeStringBalise() ? C'est a ce niveau que tu veut modifier le title? c bien ça?
    D'ailleur je vois nulle par la balise title? C normal

    Peut tu me preciser si c bien vers ligne 82 que tu as recuperer ton nom article?



    Fred75

  7. #7
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Le code que tu donne n'est pas suffisant pour une quelconque solution, mais il est certain que utiliser du javascript pour définir le titre de la page, c'est vraiment pas une bonne solution.

    Le principe est simple, il faut avoir récupérer le nom de cette page avant la balise <title>, plus clairement, avant le DOCTYPE.
    Ceci demande donc inévitablement une certaine structure à ces pages, plus particulièrement, de faire des traitements avant de s'occuper à générer le moindre code HTML.
    En somme, on fait tout ce qu'il y a à faire en 1er, puis en tout dernier on s'occupe de la partie interface, la page HTML.
    Au besoin, on stock les données dans des variables, tableau, Objet, etc ... et on les exploite à la fin.


    D'ailleurs, ceci te permettra de mieux gérer tes redirections qui sont faites encore une fois par du JS (window.location) alors que ceci serait nettement mieux avec la fonction header(), qui réclame de ce faire avant le moindre HTML ou echo.

    Sache que les données comme les GET, POST (entre autre) sont connues, donc peuvent être exploitées dès la 1ère ligne de code de la page, donc les vérifications et autres alternatives peuvent ce faire très tôt dans le déroulement de la page, du code.
    Donc évite de faire ceci en plein corps de ta page, il est là ton problème.



    Au passage, tu utilise partout <? qui est totalement dépendant de la directive du php.ini, short_open_tag, alors que <?php ça marche dans 100% des cas.
    Personnellement, j'appel ça faire des économies bout d'chandelles, et encore, reste à savoir si ça économise quelque chose.
    C'est vraiment une petite parenthèse, un toute petite remarque.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  8. #8
    Membre régulier
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Août 2010
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Août 2010
    Messages : 216
    Points : 96
    Points
    96
    Par défaut
    Merci beaucoup pour vos remarques.

    Je crois que j'ai compris comment me diriger vers la bonne solution néanmoins j'aurais encore besoin d'aide.

    Pour Fredd_75 : changeStringBalise() sert à modifier des balises [title] ou [color] dans la publication des articles. Ceci va disparaitre prochainement.

    En fin de compte il faudrait que je puisse appeler la fonction qui me permettrait d'afficher mon title.
    Voila la fonction que j'appelle dans mon code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $newsReq	= getNewsFromId($nbrNewsId );
    $newValue 	= mysql_fetch_array($newsReq);
    Malheureusement je ne sais pas comment l'intégrer avant le DOCTYPE pour qu'elle ne s'affiche que sur la page article.

    J'ai tenté avec un code de ce type mais je ne sais pas comment m'y prendre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $link=(isset($_GET['link']))?trim(rawurldecode((string)$_GET['link'])):'';
    switch ($link) {
    		case 'article':
    		$fonction='' ;
    		break;
    	default:
    		$fonction1='' ;
    }
    echo ''.$fonction."\n"
    Avez-vous une piste ?

    Merci pour votre aide,

    Aurélien
    Salutations à tous les amis du forum Développez

    Monsieur GRrr, bulletins tranchants pour adultes consentants !

  9. #9
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Les informations et codes ne permettent toujours pas de t'aider.

    Il faudrait en quelque sorte la structure générale que tu as adopté, le comment tu as organisé tout ça pour au bout générer une page HTML.

    Mais si tu ne parviens pas à intégrer la partie de code qui récupère le nom de la page avant le doctype, c'est que la structure n'est malheureusement pas adaptée à ton besoin.
    Il va te falloir remanier certaine choses, remonter, déplacer certains codes, surtout remonter.

    En faite, à partir du DOCTYPE, on évite au maximum de mettre des codes conditionnels/alternatives, de même que des includes, et surtout (je dirais le pire) des requêtes SQL récupérant des données, faire des mises à jours.
    Cette partie devrait se contenter d'avoir que du HTML ou de faire des echo, en somme, générer le résultat final.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  10. #10
    Membre régulier
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Août 2010
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Août 2010
    Messages : 216
    Points : 96
    Points
    96
    Par défaut
    Merci beaucoup !!!

    Grâce à tes commentaires et votre aide j'ai compris comment modifier et optimiser mon site.

    Encore un grand merci

    Aurélien
    Salutations à tous les amis du forum Développez

    Monsieur GRrr, bulletins tranchants pour adultes consentants !

Discussions similaires

  1. Afficher le nom des articles dans les etiquettes
    Par yaz1234 dans le forum Odoo (ex-OpenERP)
    Réponses: 0
    Dernier message: 21/01/2014, 10h22
  2. [Joomla!] afficher les alias des articles dans la barre de titre
    Par bouchra19 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 12/10/2012, 18h30
  3. Afficher nom de fichier dans showmessage
    Par Nicolas01 dans le forum Delphi
    Réponses: 1
    Dernier message: 13/05/2007, 03h16
  4. Ne pas afficher le nom de l'EXE dans la barre de tâche
    Par Delphi-ne dans le forum Delphi
    Réponses: 2
    Dernier message: 29/11/2006, 18h02
  5. Réponses: 5
    Dernier message: 08/05/2006, 00h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo