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 :

Balises title et meta dynamiques


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 58
    Points : 19
    Points
    19
    Par défaut Balises title et meta dynamiques
    Bonjour,

    J'ai quelques connaissances basiques en html et en css mais je suis totalement novice en Php.
    Or, j'ai récupéré la "webmasterisation" du site de ma boite.
    Je me suis rendu compte que le title et les différents meta n'apparaissent pas (pas terrible en terme de visibilité et de référencement).

    Ainsi, j'ai ce code là dans mon index.php :

    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
    <? session_start();
    //chargement de la bibliothèque de fonctions.
    include_once("_tools/biblioFonctions.inc");
    include_once("_linkbdd/curseur.inc");
    $tab_meta = getMeta(1);
    ?>
    <!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" lang="fr">
    <head>
    <?
    if($tab_meta!=null)
    {
    	echo <title>.$tab_meta[0].</title>;
    	echo <meta name='description' lang='fr' content='".$tab_meta[1]."'>;
    	echo <meta name='keywords' lang='fr' content='".$tab_meta[2]."'>;
    }
     
    if($_SESSION["langue"]==1) echo "<meta name='Language' CONTENT='fr'/>";
    	else echo "<meta name='Language' CONTENT='en'/>"
     
    ?>
    Il semble que "curseur.inc" permette de se connecter à la BDD phpMyadmin qui contient une table nommée Meta dans laquelle j'ai mes _idpage, idMeta, title, description...

    Voyez-vous une erreur?

    Avez-vous besoin de plus d'infos pour me renseigner?

    Merci d'avance...

  2. #2
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 022
    Points : 2 273
    Points
    2 273
    Par défaut
    Salut,
    oui, il faudrait voir le code de la fonction getMeta() car apparemment getMeta(1) retourne null et la condition if($tab_meta!=null) retourne false donc le code du bloc n'est jamais exécuté.
    Tu peux déjà tester :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
    var_dump($tab_meta);
    if($tab_meta!=null) {
    ...
    pour afficher la valeur de $tab_meta.
    Vive les roues en pierre

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 58
    Points : 19
    Points
    19
    Par défaut
    j'ai trouvé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function getMeta($page)
    {
    	if(isset($_SESSION['langue']))$langue =$_SESSION['langue'];
    	else $langue=0;
    	$sql="select * from Meta where PageSite_idPage='".$page."' and Langue_idLangue='".$langue."'";
    	$cursMeta = new curseur();
    	$cursMeta->select($sql);
    	$tab_Meta[]=$cursMeta->recupchamp("title");
    	$tab_Meta[]=$cursMeta->recupchamp("description");
    	$tab_Meta[]=$cursMeta->recupchamp("keywords");
    	$cursMeta->fermcurs();
    	return $tab_Meta;
    }
    Est-ce bien ça qu'il faut?

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 58
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par Djakisback Voir le message
    Tu peux déjà tester :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
    var_dump($tab_meta);
    if($tab_meta!=null) {
    ...
    pour afficher la valeur de $tab_meta.
    J'ai pas l'impression que ça marche...

  5. #5
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 022
    Points : 2 273
    Points
    2 273
    Par défaut
    Le problème c'est que t'es dans le <head> donc il affiche rien faudrait afficher la source HTML et voir s'il y a quelque chose d'écrit.
    Si t'as bien null qui s'affiche faudrait voir la méthode select() de ta classe curseur qui doit se trouver dans un fichier curseur.inc ou un nom du style.
    Vive les roues en pierre

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 58
    Points : 19
    Points
    19
    Par défaut
    De retour de we...

    Effectivement, il n'y a rien d'afficher dans la source :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <title></title><meta name='description' lang='fr' content=''><meta name='keywords' lang='fr' content=''>
    J'ai bien un "curseur.inc" dans lequel j'ai, entre autre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // Execution requete select
    	function select($sql)
    	{
    		$this->result=mysql_query($sql) or die ("Erreur requete : ".$sql);
    		if ($this->nbligne()>0) 
    		{
    			$this->recupligne();
    		}
    	}
    Ma "function getMeta" se trouvant dans "_tools/biblioFonctions.inc"

    Je suis vraiment perdu dans tout ça...

    J'espère que j'ai fourni suffisamment d'informations pour résoudre mon problème.

  7. #7
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Bonjour

    Alors apparemment si j'ai bien compris get_meta te retourne la valeur de tes meta sous forme de tableau en fonction de la valeur que tu envoi à get_meta...

    Dans ton exemple getMeta(1) va te sortir les meta de ta page qui a l'id 1 : voir ceci dans ta requête sql : PageSite_idPage='".$page."'

    Donc si tu mets getMeta(1) ça te retourne les meta de l'entrée dans la base qui possède un PageSite_idPage qui vaut 1.

    J'espère avoir été clair ?

    Donc il faut vérifier si dans ta bdd tu as dans la table "meta" un PageSite_idPage qui vaut 1, ainsi de suite...
    Vous souhaitez participer à la rubrique (X)HTML/CSS, contactez moi.
    débutez avec les CSS
    Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
    Votez pour les messages qui vous ont aidés...

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 58
    Points : 19
    Points
    19
    Par défaut
    Ça semble bien être ça... (cf. jpeg de ma base meta en PJ)

    En revanche, ce sont peut être les pages qui ne sont pas identifiées???
    Ne faudrait-il pas que j'ai un _idPage dans chaque .html pour qu'il puisse faire le rapprochement?

    Merci
    Images attachées Images attachées  

  9. #9
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Il me semble que tu devra avoir sur chaque page sur laquelle les meta sont générés dynamiquement le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tab_meta = getMeta(X);
    où X va correspondre à la colonne PageSite_idPage de ta bdd...

    Fais une vérification : soit une page où il n'y a pas getMeta, soit une page où la valeur de X (getMeta(X)) ne se trouve pas dans ta bdd, et vérifie alors si tes meta générés dynamiquement apparaissent, mais je pense qu'ils n'apparaitrons pas...
    Vous souhaitez participer à la rubrique (X)HTML/CSS, contactez moi.
    débutez avec les CSS
    Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
    Votez pour les messages qui vous ont aidés...

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 58
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par 12monkeys Voir le message
    Il me semble que tu devra avoir sur chaque page sur laquelle les meta sont générés dynamiquement le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tab_meta = getMeta(X);
    où X va correspondre à la colonne PageSite_idPage de ta bdd...

    Fais une vérification : soit une page où il n'y a pas getMeta, soit une page où la valeur de X (getMeta(X)) ne se trouve pas dans ta bdd, et vérifie alors si tes meta générés dynamiquement apparaissent, mais je pense qu'ils n'apparaitrons pas...
    Effectivement, je n'ai pas cela sur mes pages html.
    Et même en le rajoutant (en modifiant le X par le numéro correpondant) rien ne change...

  11. #11
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    As tu rajouté l'ensemble des lignes de ton premier exemple ?

    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
    <? session_start();
    //chargement de la bibliothèque de fonctions.
    include_once("_tools/biblioFonctions.inc");
    include_once("_linkbdd/curseur.inc");
    $tab_meta = getMeta(1);
    ?>
    <!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" lang="fr">
    <head>
    <?
    if($tab_meta!=null)
    {
    	echo <title>.$tab_meta[0].</title>;
    	echo <meta name='description' lang='fr' content='".$tab_meta[1]."'>;
    	echo <meta name='keywords' lang='fr' content='".$tab_meta[2]."'>;
    }
     
    if($_SESSION["langue"]==1) echo "<meta name='Language' CONTENT='fr'/>";
    	else echo "<meta name='Language' CONTENT='en'/>"
     
    ?>
    Autrement pour le débugage fait un var_dump de ta variable $tab_meta pour voir ce qu'elle contient comme te le précisait Djakisback, mais places le var_dump entre tes balises body pour y voir quelque chose

    Si ça ne fonctionne toujours pas mets nous voir l'intégralité de tes 2 fichiers biblioFonctions.inc et curseur.inc pour voir...
    Vous souhaitez participer à la rubrique (X)HTML/CSS, contactez moi.
    débutez avec les CSS
    Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
    Votez pour les messages qui vous ont aidés...

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 58
    Points : 19
    Points
    19
    Par défaut
    Non, j'ai juste ajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tab_meta = getMeta(X);
    sur certaines pages html.

    En fait, je ne vois pas l'interet de rajouter toutes les lignes de mon index.php sur chaque page html...mais je me trompe peutêtre.

    J'ai essayé le var dump et j'obtient ça :

    array(3) { [0]=> NULL [1]=> NULL [2]=> NULL }

    sur ma page (dans le body ou le head, ça fait pareil...)

  13. #13
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Citation Envoyé par Geprocor Voir le message
    Non, j'ai juste ajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tab_meta = getMeta(X);
    sur certaines pages html.

    En fait, je ne vois pas l'interet de rajouter toutes les lignes de mon index.php sur chaque page html...mais je me trompe peutêtre.
    Il faut au moins rajouter encore ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if($tab_meta!=null)
    {
    	echo <title>.$tab_meta[0].</title>;
    	echo <meta name='description' lang='fr' content='".$tab_meta[1]."'>;
    	echo <meta name='keywords' lang='fr' content='".$tab_meta[2]."'>;
    }
    qui est là pour te rajouter le titre et les meta, si tu ne les rajoute pas tu n'aura pas ces infos :

    J'ai essayé le var dump et j'obtient ça :

    array(3) { [0]=> NULL [1]=> NULL [2]=> NULL }

    sur ma page (dans le body ou le head, ça fait pareil...)
    Pour t'expliquer : le var_dump sert simplement à afficher le contenu d'une variable, pour savoir ce qui s'y trouve. Je t'ai dit de le placer entre <body></body> simplement pour que tu visualise le contenu de la variable sans avoir à afficher la source (ce qui entre <head></head> ne s'affiche pas sur la page...

    Le résultat que tu me donnes signifie que $tab_meta est bien un tableau mais que son contenu est vide, autrement dit quelque part dans ton code ta fonction getMeta ne récupère pas les données de ta base de données.


    Mets nous voir l'intégralité de tes 2 fichiers biblioFonctions.inc et curseur.inc pour voir...
    Vous souhaitez participer à la rubrique (X)HTML/CSS, contactez moi.
    débutez avec les CSS
    Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
    Votez pour les messages qui vous ont aidés...

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 58
    Points : 19
    Points
    19
    Par défaut
    Voici mon curseur.inc:

    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
    <?
    //--- Curseur ---
     
    //--- Classe curseur ---
    class curseur{
     
    	//--- liste des propriétés ---
    	var $result;
    	var $ligncurs;
    	var $fincurs;
     
    	//--- liste des méthodes ---
    	// Constructeur qui accede au serveur de données puis a la bd
    	function curseur(){
    		mysql_connect ("localhost", "#####", "#####") or die ("Erreur de connection");
    		mysql_select_db("######") or die ("Erreur de connexion à la base");
    	}
    	// Execution requete d'admin
    	function admin($sql){
    		mysql_query($sql) or die ("Erreur requete : ".$sql);
    	}
    	// Execution requete select
    	function select($sql){
    		$this->result=mysql_query($sql) or die ("Erreur requete : ".$sql);
    		if ($this->nbligne()>0) {
    			$this->recupligne();
    		}
    	}
    	//Execution d'une requete SELECT sans récupération de la première ligne
    	function selectSR($sql){
    			$this->result =  mysql_query($sql);
    		}
    	// Recuperation d'une ligne du curseur
    	function recupligne(){
    		$this->fincurs = !($this->ligncurs=mysql_fetch_assoc($this->result));
    	}
    	// Recuperation d'un champ precis
    	function recupchampprecis($numligne, $nomcol){
    		return mysql_result($this->result,$numligne,$nomcol);
    	}
    	// Identifiant genere par la derniere requete insert
    	function ident(){
    		return mysql_insert_id();
    	}
    	// Nombre de ligne du curseur
    	function nbligne(){
    		return mysql_num_rows($this->result);
    	}
    	// Fermeture du curseur
    	function fermcurs(){
    		mysql_close();
    	}
     
    	// Fin du curseur
    	function fincurseur(){
    		return $this->fincurs;
    	}
     
    	// Recuperation d'un champ
    	function recupchamp($nomchamp){
    		return $this->ligncurs[$nomchamp];
    	}
    }		
    ?>
    Et une partie de mon biblioFonctions.inc :
    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
    function url_actuelle()
    {
         return "http://" . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
    }
     
    //fonction de récupération du contenu d'une page
    // @param $page : la page dont on veut récupérer le contenu
    function getLibelles($page)
    {
    $cscontenu= new curseur();
    	//Exécution de la requête de récupération du contenu
    	//$cscontenu->select("Select libelle, ordre, PageSite_idPage from LibelleSite where Langue_idLangue='".$_SESSION["langue"]."' and PageSite_idPage=(Select idPage from PageSite where libellePage='".$page."') order by ordre");
    	$cscontenu->select(	"Select libelle, ordre, PageSite_idPage from LibelleSite, PageSite where Langue_idLangue='".$_SESSION["langue"]."' and PageSite_idPage= idPage and libellePage='".$page."' order by ordre");
    	$i=1;
    	//Récupération de la langue de substitution en cas de non existence du libelle dans la langue sélectionnée
    	$cslanguesub= new curseur();
    	$cslanguesub->select("select langueDefaut from Langue where idLangue='".$_SESSION["langue"]."'");
    	//On boucle sur le résultat de la requête
    	while ($i<=$cscontenu->nbligne()) {
    		$contenu=$cscontenu->recupchamp("libelle");
    		$langueDefaut = $cslanguesub->recupchamp("langueDefaut");
    		//on boucle sur le contenu tant qu'il est null ou vide
    		while($contenu==null ||$contenu==""){
    			//Requete de récupération du contenu alternatif
    			$cssubstitution= new curseur();
    			$cssubstitution->select("Select libelle from LibelleSite where Langue_idLangue='".$langueDefaut."' and ordre='".$cscontenu->recupchamp("ordre")."' and PageSite_idPage='".$cscontenu->recupchamp("PageSite_idPage")."'");
    			if($cssubstitution->recupchamp("libelle")!=null && $cssubstitution->recupchamp("libelle")!=""){
    				$contenu=$cssubstitution->recupchamp("libelle");
    			}
    			else
    			{			//Récupération de la langue de substitution de la langue de substitution...
    						$cslanguesub->select("select langueDefaut from Langue where idLangue='".$langueDefaut."'");
    						$langueDefaut = $cslanguesub->recupchamp("langueDefaut");
    			}
    			//fermeture du curseur
    			$cssubstitution->fermcurs();
    		}
    		//insertion du contenu dans un tableau reutilisable au moment de l'affichage
    		$tab_value[]=utf8_encode($contenu);
    		$cscontenu->recupligne();
    		$i++;
    	}
    	//fermeture des curseurs
    	$cslanguesub->fermcurs();
    	$cscontenu->fermcurs();
    	return $tab_value;
    }
    //fonction de récupération du contenu d'une page
    // @param $page : la page dont on veut récupérer le contenu
     
    function getLibellesRech($langue,$page)
    {
    $cscontenu= new curseur();
    	//Exécution de la requête de récupération du contenu
    	//$cscontenu->select("Select libelle, ordre, PageSite_idPage from LibelleSite where Langue_idLangue='".$langue."' and PageSite_idPage=(Select idPage from PageSite where libellePage='".$page."') order by ordre");
    	$cscontenu->select("Select libelle, ordre, PageSite_idPage from LibelleSite, PageSite where Langue_idLangue='".$langue."' and PageSite_idPage=idPage and libellePage='".$page."' order by ordre");
    	$i=1;
    	//Récupération de la langue de substitution en cas de non existence du libelle dans la langue sélectionnée
    	$cslanguesub= new curseur();
    	$cslanguesub->select("select langueDefaut from Langue where idLangue='".$langue."'");
    	//On boucle sur le résultat de la requête
    	while ($i<=$cscontenu->nbligne()) {
    		$contenu=$cscontenu->recupchamp("libelle");
    		$langueDefaut = $cslanguesub->recupchamp("langueDefaut");
    		//on boucle sur le contenu tant qu'il est null ou vide
    		while($contenu==null ||$contenu==""){
    			//Requete de récupération du contenu alternatif
    			$cssubstitution= new curseur();
    			$cssubstitution->select("Select libelle from LibelleSite where Langue_idLangue=".$langueDefaut." and ordre=".$cscontenu->recupchamp("ordre")." and PageSite_idPage=".$cscontenu->recupchamp("PageSite_idPage"));
    			if($cssubstitution->recupchamp("libelle")!=null && $cssubstitution->recupchamp("libelle")!=""){
    				$contenu=$cssubstitution->recupchamp("libelle");
    			}
    			else
    			{			//Récupération de la langue de substitution de la langue de substitution...
    						$cslanguesub->select("select langueDefaut from Langue where idLangue=".$langueDefaut);
    						$langueDefaut = $cslanguesub->recupchamp("langueDefaut");
    			}
    			//fermeture du curseur
    			$cssubstitution->fermcurs();
    		}
    		//insertion du contenu dans un tableau reutilisable au moment de l'affichage
    		$tab_value[]=utf8_encode($contenu);
    		$cscontenu->recupligne();
    		$i++;
    	}
    	//fermeture des curseurs
    	$cslanguesub->fermcurs();
    	$cscontenu->fermcurs();
    	return $tab_value;
    }
    //fonction de récupération du libellé d'une erreur
    // @param $lib : le libellé de l'erreur dont on veut récupérer le contenu
    function getLibErreur($lib)
    {
    $cscontenu= new curseur();
    	//Exécution de la requête de récupération du contenu
    	$cscontenu->select("Select libelleErreur from ErreurSite where Langue_idLangue='".$_SESSION["langue"]."' and idErreur='".$lib."'");	
    	$i=1;
    	//Récupération de la langue de substitution en cas de non existence du libelle dans la langue sélectionnée
    	$cslanguesub= new curseur();
    	$cslanguesub->select("select langueDefaut from Langue where idLangue=".$_SESSION["langue"]);
    	//On boucle sur le résultat de la requête
    	if($cscontenu->nbligne()>0){
    		$contenu=$cscontenu->recupchamp("libelleErreur");
    		$langueDefaut = $cslanguesub->recupchamp("langueDefaut");
    		//on boucle sur le contenu tant qu'il est null ou vide
    		while($contenu==null ||$contenu==""){
    			//Requete de récupération du contenu alternatif
    			$cssubstitution= new curseur();
    			$cssubstitution->select("Select libelleErreur from ErreurSite where Langue_idLangue=".$langueDefaut." and idErreur='".$lib."'");
    			if($cssubstitution->recupchamp("libelleErreur")!=null && $cssubstitution->recupchamp("libelleErreur")!=""){
    				$contenu=$cssubstitution->recupchamp("libelleErreur");
    			}
    			else
    			{			//Récupération de la langue de substitution de la langue de substitution...
    						$cslanguesub->select("select langueDefaut from Langue where idLangue=".$langueDefaut);
    						$langueDefaut = $cslanguesub->recupchamp("langueDefaut");
    			}
    			//fermeture du curseur
    			$cssubstitution->fermcurs();
    		}
     
    	//fermeture des curseurs
    	$cslanguesub->fermcurs();
    	$cscontenu->fermcurs();
    	return utf8_encode($contenu);
    	}
    }
    function getMeta($page)
    {
    	if(isset($_SESSION['langue']))$langue =$_SESSION['langue'];
    	else $langue=0;
    	$sql="select * from Meta where PageSite_idPage='".$page."' and Langue_idLangue='".$langue."'";
    	$cursMeta = new curseur();
    	$cursMeta->select($sql);
    	$tab_Meta[]=$cursMeta->recupchamp("title");
    	$tab_Meta[]=$cursMeta->recupchamp("description");
    	$tab_Meta[]=$cursMeta->recupchamp("keywords");
    	$cursMeta->fermcurs();
    	return $tab_Meta;
    }

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 58
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par 12monkeys Voir le message
    Pour t'expliquer : le var_dump sert simplement à afficher le contenu d'une variable, pour savoir ce qui s'y trouve. Je t'ai dit de le placer entre <body></body> simplement pour que tu visualise le contenu de la variable sans avoir à afficher la source (ce qui entre <head></head> ne s'affiche pas sur la page...
    Ben en fait, ça s'affiche dans les 2 cas (entre body et head) sans afficher la source...

  16. #16
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    C'est codé en POO, je ne me suis pas encore familiarisé avec ça !!

    Sinon je ne vois pas trop, je sèche un peu...

    Eventuellement je peut encore te proposer de faire 2 tests : sur une de tes pages fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $_SESSION['langue'];
    Pour t'expliquer où je veux en venir : la fonction getMeta débute par une vérification sur la langue
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	if(isset($_SESSION['langue']))$langue =$_SESSION['langue'];
    	else $langue=0;
    	$sql="select * from Meta where PageSite_idPage='".$page."' and Langue_idLangue='".$langue."'";
    si $_SESSION['langue'] existe alors $langue vaut cette valeur, sinon elle vaut 0. Or la requête sql recherche les données qui corespondent au numéro de la page ( = le fameur X dans mes exemples) et la valeur de la langue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    and Langue_idLangue='".$langue."'";
    Or j'ai vu dans l'image de la base que tu as donné que Langue_idLangue vaut toujours 0, alors si $_SESSION['langue'] ne vaut pas 0 ta requête ne t'affichera rien...

    Si c'est pas ça il faudra que tu attendes d'autre gens plus calés que moi en POO...
    Vous souhaitez participer à la rubrique (X)HTML/CSS, contactez moi.
    débutez avec les CSS
    Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
    Votez pour les messages qui vous ont aidés...

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 58
    Points : 19
    Points
    19
    Par défaut
    SUPER !!

    Le souci venait bien de la langue.
    Le français était identifié en "1" et l'anglais en "2".
    Forcement, le "0" ne référait à rien...

    J'ai donc :
    - modifié ma langue par défaut : else $langue=1;
    - et modifié la _idLangue dans ma base.

    Un grand merci pour votre aide

    Question bonus : Pensez-vous que cette méthode de meta dynamiques sera bien interpreté par les moteurs de recherche?

  18. #18
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Super si j'ai pu t'aider

    Citation Envoyé par Geprocor
    Question bonus : Pensez-vous que cette méthode de meta dynamiques sera bien interpreté par les moteurs de recherche?
    Par principe les moteurs de recherche ne verrons pas que tes meta sont dynamiques, ils ne voient que la page html une fois interprétée...

    Maintenant cela ne veut pas dire que cela ne posera pas de problème : le bot qui arrive sur la page verra les infos qu'on veut bien lui soumettre, dans ton exemple il faut voir comment est déterminée la langue... Pour le reste les meta sont en relation avec la page affichée donc pas de souci pour les moteurs de recherche...
    Vous souhaitez participer à la rubrique (X)HTML/CSS, contactez moi.
    débutez avec les CSS
    Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
    Votez pour les messages qui vous ont aidés...

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 58
    Points : 19
    Points
    19
    Par défaut
    Ok, merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Balise TITLE en dynamique : W3C non valide
    Par Alain17 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 14/12/2013, 21h59
  2. Ou placer ses balises title, meta quand on a des pseudo frame
    Par querybase29 dans le forum Référencement
    Réponses: 4
    Dernier message: 16/06/2012, 16h12
  3. Balise title dynamique
    Par bluefish63 dans le forum Langage
    Réponses: 11
    Dernier message: 11/05/2008, 10h38
  4. META TITLE et balise title
    Par nyme92 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 16/01/2008, 14h54
  5. Problème formatage dans balise title / alt
    Par jflebegue dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 09/12/2004, 15h18

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