Une variable dans le <title>

thierry35800
Invité n'ayant pas de compte PHPfrance

03 janv. 2013, 13:55

Bonjour,
Je souhaite rajouter une variable dans le title, mais celle ci ne semble pas déclarée.
Le code php de ma page est ici :
3w.locations-campingcar.fr/textarea.txt

Il s'agit de la variable $ville dans le <title>

Pourtant on la retrouve en ligne 2730 <?php echo $ville; ?>
et elle est bien reconnue à cet endroit.

C'est pour le site 3w.locations-campingcar.fr

Et les villes sont renseignées sur les annonces tels que :
3w.locations-campingcar.fr/Bretagne-Finistere-4-Places-location-camping-car--4.htm

Bon, il faut déclarer ma variable mais comment ??
Merci de votre aide
Thierry

ViPHP
xTG
ViPHP | 7331 Messages

03 janv. 2013, 14:21

C'est une question de portée de variable.
Exemple :
function foo(){
  echo $bar; // variable inexistante
}
function foo($bar){
  echo $bar; // variable passée en paramètre
}
function foo(){
  global $bar; // indique que la variable $bar est une variable globale => déclarée en dehors de la fonction
  echo $bar; // variable existante en dehors de la fonction
}
Il te faut donc soit passer la variable en paramètre de la fonction, soit la déclarer en tant que variable globale.

thierry35800
Invité n'ayant pas de compte PHPfrance

03 janv. 2013, 14:32

Merci de la réponse
Oui, mais comment faire ça ?
Je suis vraiment un novice en php !
Thierry

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

03 janv. 2013, 15:52

Ben... Comme dans l'exemple de xTG :)

Soit tu passes ta variable en paramètre de ta fonction, c'est à dire :
- dans la déclaration de ta fonction (là où y a le "function trucmuche()") tu ajoutes un paramètre entre les parenthèses (séparées par des virgules s'il y en a plusieurs), genre "$ville". Puis dans ta fonction (donc entre les { et } qui suivent), tu pourras utiliser cette variable qui ne sera connue que de ta fonction.
- dans l'appel à ta fonction (donc là où tu veux qu'elle soit exécutée par ton code), tu passes la valeur que tu veux envoyer à ta fonction (le nom de la ville semble être pas mal :))

L'avantage, c'est que tu peux appeler plusieurs fois ta fonction en lui passant des paramètres différents. Mais au moins tu es sur de la valeur que tu lui envoi puisque c'est toi qui lui envoi.

Soit tu déclares la variable comme étant globale, et du coup ta fonction ira chercher sa valeur à "l'extérieur" (donc en dehors des { et }), c'est à dire :
- y a juste à coller l'instruction " global $leNomDeLaVariableQuEstDehorsDeLaFonctionEtDontTuVeuxChopperLaValeur; " au début de ta fonction pour que cela fonctionne :)

L'avantage, c'est que dans ton cas, c'est plus rapide (encore faut-il en avoir profiter pour comprendre les histoires de portée des variables :)).
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 5 Messages

03 janv. 2013, 16:52

Merci Ryle,
Impossible de répondre
This message was flagged as spam and has been denied.
à chaque tentative !!

Petit nouveau ! | 5 Messages

03 janv. 2013, 16:58

Merci Ryle,
Je fait pourtant des efforts pour essayer de comprendre ce que tu veux me dire, mais j'avoue que ma matière grise est largement dépassée !
Pourrait tu m'aider en modifiant le fichier en question, et si tu pouvais mettre les modifs en couleur ou gras pour m'aider à comprendre.
Car la j'avoue patauger sérieusement dans la semoule !
Thierry

ViPHP
xTG
ViPHP | 7331 Messages

03 janv. 2013, 17:54

Ton code :
function bar(){
// ....
echo '<title>' . $foo . '</title>';
// ...
}
Un bon code :
function bar(){
global $foo; // déclare qu'il faut aller chercher la variable $foo en dehors de la fonction
// ....
echo '<title>' . $foo . '</title>';
// ...
}

Petit nouveau ! | 5 Messages

03 janv. 2013, 18:24

Merci Xtg
Mais je ne trouve pas comment et ou le disposer ce code !
J'ai ça :

Code : Tout sélectionner

function htm_header($title, $description, $word) { global $language, $param_gen, $cache_publicites, $cache_nombre_annonce; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr-FR" lang="fr-FR"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title><?php if(!empty($title)) echo $title; ?> blabla <?php if(!empty($ville)) echo $ville; ?></title>
La variable qui n'est pas reconnue c'est $ville

Merci

ViPHP
xTG
ViPHP | 7331 Messages

03 janv. 2013, 20:37

Faire plus pédagogue que cela je peux pas...
Après cela s'appelle un travail et je facture 10€ de l'heure.

Petit nouveau ! | 5 Messages

08 janv. 2013, 17:16

Faire plus pédagogue que cela je peux pas...
Après cela s'appelle un travail et je facture 10€ de l'heure.

Oui xTG, 10 euros de l'heure c'est pas cher ! si tu peux me faire ça, je suis ok.
Le fichier 3w.locations-campingcar.fr/textarea.txt te suffit 'il ?
Cdt
Thierry

ViPHP
xTG
ViPHP | 7331 Messages

08 janv. 2013, 19:45

Faire plus pédagogue que cela je peux pas...
Après cela s'appelle un travail et je facture 10€ de l'heure.

Oui xTG, 10 euros de l'heure c'est pas cher ! si tu peux me faire ça, je suis ok.
Le fichier 3w.locations-campingcar.fr/textarea.txt te suffit 'il ?
Cdt
Thierry
A hauteur de 10h par semaine pendant 2 mois pour ce travail au moins ! 300€.
Après si tu es prêt à payer cela au lieu de lire un cours sur la programmation et de relire mes exemple, les étudier et les adapter...

Petit nouveau ! | 5 Messages

08 janv. 2013, 21:26

Oui, 10h par semaine pendant 2 mois c'est ce que je vais avoir besoin :roll:
Bon je vais suivre tes conseils et essayer de me plonger dans le php =D>

Eléphant du PHP | 267 Messages

09 janv. 2013, 00:21

Dand le fichier que t'as donné, il faut juste modifier la ligne 12:
function htm_header($title, $description, $word)
par :
function htm_header($title, $description, $word, $ville="")

ensuite, là où est appelée la fonction htm_header (dans un autre fichier apparemment), il faut rajouter un quatrième paramètre qui correspond à la ville, par exemple:
htm_header("le titre de la page", "la description", "des mots", "Lille");

@+
dix2