2 votes

Ajouter à la balise de titre de la page en fonction de la variable de l'URL

J'ai vu le fil de discussion suivant, mais il me dépasse un peu...

Comment puis-je modifier la balise <title> dynamiquement en php en fonction des valeurs de l'URL ?

En fait, j'ai une page index.php (pas de php à l'intérieur, juste nommée pour être à l'épreuve du temps - peut-être maintenant !) Elle contient de nombreuses galeries de type lightbox qui peuvent être déclenchées à partir d'un lien externe par une variable dans l'URL - par exemple index.php?open=true2, index.php?open=true3, etc.

J'aimerais que la balise de titre index.php inclue les données statiques existantes et ajoute des mots supplémentaires en fonction de la variable URL - par exemple, si URL open=true2 ajouter "galerie de voitures", si URL open=true3 ajouter "galerie de chats", si URL n'a pas de variable rien n'est ajouté au titre.

Quelqu'un peut-il nous aider ? J'ai cherché, mais soit j'ai raté le but des messages, soit le sujet n'a pas été abordé (à mon niveau d'amateur).

Merci beaucoup. Paul.

2voto

Ben Points 903

Au début de votre script php, mettez ceci :

<?php

# define your titles
$titles = array('true2' => 'Car Gallery', 'true3' => 'Cat Gallery');

# if the 'open' var is set then get the appropriate title from the $titles array
# otherwise set to empty string.
$title = (isset($_GET['open']) ? ' - '.$titles[$_GET['open']] : '');

?>

Puis utilisez-le pour inclure votre titre personnalisé :

<title>Pauls Great Site<?php echo htmlentities($title); ?></title>

0voto

Mild Fuzz Points 6864
<title>Your Static Stuff <?php echo $your_dyamic_stuff;?></title>

0voto

Homer6 Points 5850
<?php
    if( array_key_exists('open', $_GET) ){
        $title = $_GET['open'];
    }else{
        $title = '';
    }
?>
<html>
<head>
<title><?php echo $title; ?></title>
</head>

<body>
The content of the document......
</body>

</html>

http://www.w3schools.com/TAGS/tag_title.asp

http://php.net/manual/en/reserved.variables.get.php

0voto

jayp Points 2383

PHP peut récupérer des informations à partir de la chaîne de requête de l'URL (www.yoursite.com?page=1&cat=dog, etc.). Vous devez récupérer ces informations, vous assurer qu'elles ne sont pas malveillantes, puis les insérer dans le titre. Voici un exemple simple - pour votre application, assurez-vous d'assainir les données et de vérifier qu'elles ne sont pas malveillantes :

<?php
$open = "";

// check querystring exists
if (isset($_GET['open'])) {
// if it does, assign it to variable
$open = $_GET['open'];
}
?>

<html><head><title>This is the title: <?php $open ?></title></head>

PHP dispose de nombreuses fonctions permettant d'échapper aux données susceptibles de contenir des éléments indésirables. Si vous consultez htmlspecialchars et htmlentities, vous devriez trouver des informations qui vous aideront.

0voto

Treffynnon Points 13385

Certaines des autres réponses sont ouvertes aux abus, essayez plutôt ceci :

<?php
    if(array_key_exists('open', $_GET)){
        $title = $_GET['open'];
    } else {
        $title = '';
    }
    $title = strip_tags($title);
?>
<html>
    <head>
        <title><?php echo htmlentities($title); ?></title>
    </head>
    <body>
            <p>The content of the document......</p>
    </body>
</html>

Sinon, comme @Ben l'a mentionné. Définissez d'abord vos titres dans votre PHP pour empêcher les gens d'injecter directement du texte dans votre HTML.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X