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

HTML Discussion :

Balise TITLE en dynamique : W3C non valide


Sujet :

HTML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 43
    Par défaut Balise TITLE en dynamique : W3C non valide
    Bonjour,

    dans une base mysql, on lit des articles de blog et on écrit la balise TITLE de la page WEB en fonction de l'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
    <!DOCTYPE html>
    <html lang="fr-FR">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <?php  
    include_once('libs/connexion-sql.php');
     
    function lit_article($id_article_) {
            $pdo = PDO2::getInstance();
            $sql='SELECT id_article, auteur, titre, date_publication, article FROM article_location WHERE id_article = '.$id_article_ ;     
            $requete = $pdo->prepare($sql);
            if ($requete->execute()) 
            {
                    return $requete;
            }
            else
            {
                    return $requete->errorInfo();
            }
            $requete->closeCursor();
    }
     
    function liste_articles() {
            $pdo = PDO2::getInstance();
            $sql='SELECT id_article, auteur, date_publication, titre, description, article FROM article_location ORDER BY date_publication desc';
            $requete = $pdo->prepare($sql);
            $requete->execute();
            return $requete;
            $requete->closeCursor();
     
    }
    $liste_articles= liste_articles();
    $liste_articles->setFetchMode(PDO::FETCH_OBJ); // on dit qu'on veut que le r&eacute;sultat soit r&eacute;cup&eacute;rable sous forme d'objet
     
    // Valeurs par défaut
    $titre='Location de vacances La Rochelle en Charente maritime derni&egrave;re minute';
    $article='Aucun article sélectionné !';
    $auteur='';
    $description ='Vous recherchez une location de vacances derni&egrave;re minute &agrave; La Rochelle ?';
     
    if (!empty($_GET['id_article'])) {
            $selection_article=true;
            // On affiche l'article
            $id_article = $_GET['id_article'];
            $article_= lit_article($id_article);
            $article_->setFetchMode(PDO::FETCH_OBJ); // on dit qu'on veut que le r&eacute;sultat soit r&eacute;cup&eacute;rable sous forme d'objet
            while( $ligne = $article_->fetch() )
            {       
                    $titre =  $ligne->titre;
                    $article =  $ligne->article;
                    $auteur =  $ligne->auteur;
                    $description = $ligne->description;
            }
    }
     
    ?>
    <title><?php echo $titre;?></title>
    <meta name="description" content="<?php echo $description;?>"/>
    <link rel="stylesheet" media="all" href="http://www.papillote17.com/style/style.css" type="text/css" />
    <link rel="stylesheet" media="all" href="http://www.papillote17.com/style/rmm-css/responsivemobilemenu.css" type="text/css" />
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/>
    <link rel="icon" type="image/png" href="http://www.papillote17.com/photos/favicon.png">
    </head>
    Le code fonctionne bien : le titre de la page est bien créé en dynamique par php après lecture de la base de données.

    Le problème : le code HTML généré pose un problème de validation W3C, probablement à cause du code php qui est AVANT la balise TITLE.

    Voici les erreurs mentionnées lors de la validation W3C de la page générée :

    Result: 11 erreurs / 2 avertissements
    Info: W3c Online Validation
    line 5 column 2 - Erreur: Element head is missing a required instance of child element title.
    line 6 column 7 - Erreur: Element title not allowed as child of element body in this context. (Suppressing further errors from this subtree.)
    line 7 column 123 - Erreur: Attribute name not allowed on element meta at this point.
    line 7 column 123 - Erreur: Element meta is missing one or more of the following attributes: itemprop, property.
    line 8 column 103 - Erreur: Element link is missing required attribute property.
    line 9 column 126 - Erreur: Element link is missing required attribute property.
    line 10 column 104 - Erreur: Attribute name not allowed on element meta at this point.
    line 10 column 104 - Erreur: Element meta is missing one or more of the following attributes: itemprop, property.
    line 11 column 87 - Erreur: Element link is missing required attribute property.
    line 12 column 7 - Erreur: Stray end tag head.
    line 13 column 6 - Erreur: An body start tag seen but an element of the same type was already open.

    D'où proviennent ces erreurs et comment les corriger ?

    Merci de votre aide.

    Cordialement

    Alain

  2. #2
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 324
    Par défaut
    Bonjour,

    le code php, ici n'a pas d’intérêt!
    dans $titre et $description il peut tout avoir, même du code html

    c'est a toi de regarder le code html généré. A ce propos, tu désires de l'html ou de l'xhtml ? ton validateur doit être perdu...

    ps: au niveau php, j'aime bien ton code : libérer la mémoire après un return
    et return $requete->errorInfo(); bonjour la gestion des erreurs : tu en déclanches en fait une autre

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 43
    Par défaut ???
    Désolé, mais je ne comprends rien à ta réponse qui ne m'aide aucunement.

    Cordialement

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu as un problème HTML : il faut d'abord regarder le code HTML au final, pas le code PHP.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 43
    Par défaut Code HTML
    Voici le code HTML généré :
    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
    <!DOCTYPE html>
    <html lang="fr-FR">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>Location de vacances La Rochelle en Charente maritime derni&egrave;re minute</title>
    <meta name="description" content="Vous recherchez une location de vacances derni&egrave;re minute &agrave; La Rochelle ?"/>
    <link rel="stylesheet" media="all" href="http://www.papillote17.com/style/style.css" type="text/css" />
    <link rel="stylesheet" media="all" href="http://www.papillote17.com/style/rmm-css/responsivemobilemenu.css" type="text/css" />
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/>
    <link rel="icon" type="image/png" href="http://www.papillote17.com/photos/favicon.png">
    </head>
    <body>
    <header>
    <nav>
    <div class="rmm">
    <ul>
    <li><a href="http://www.papillote17.com">Accueil</a></li>
    <li><a href="http://www.papillote17.com/location-week-end-La-Rochelle.php">L'ext&eacute;rieur</a></li>
    <li><a href="http://www.papillote17.com/chambre-d-hotes-La-Rochelle.php">L'appartement</a></li>
    <li><a href="http://www.papillote17.com/vacances-chez-l-habitant-La-Rochelle.php">Prix, disponibilit&eacute; et r&eacute;servation</a></li>
    <li><a href="http://www.papillote17.com/location-vacances-La-Rochelle.php">Activit&eacute;s locales</a></li>
    <li><a href="http://www.papillote17.com/gite-La-Rochelle.php">Commentaires</a></li>
    <li><a href="http://www.papillote17.com/location-vacances-derniere-minute-La-Rochelle.php" style="color:lime;" >Blog</a></li>
    <li><a href="http://www.papillote17.com/en/holidays-apartment-La-Rochelle.php" title="Translate in ENGLISH">ENGLISH</a></li>
    </ul>
    </div>
    </nav>
    <h1>La Rochelle : location de vacances derni&egrave;re minute</h1>
    <div id="hide" class="hide">
    <div itemscope itemtype="http://schema.org/BedAndBreakfast">
    <span itemprop="url" content="http://www.papillote17.com"></span><span itemprop="name" content="Les dimeries"></span>
    <a href="https://plus.google.com/117272604062691626418?rel=author">Google+</a>
    <span itemprop="image">http://www.papillote17.com/photos/Claude_et_Alain.jpg</span>
    <div itemprop="description">Location de vacances derni&egrave;re minute pour 2 personnes avec jardin, &agrave; 10 minutes de La Rochelle</div>
    <div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
    <span itemprop="streetAddress">12, rue des dimeries</span>
    <span itemprop="postalCode">17139</span>
    <span itemprop="addressLocality">DOMPIERRE SUR MER</span>
    <span itemprop="addressRegion">Charente maritime</span>
    <span itemprop="addressCountry">France</span>
    <span itemprop="id_article">+33 (0)5 46 67 30 78</span>
    <span itemprop="id_article">+33 (0)6 87 97 99 81</span>
    <span itemprop="email">dimeries12@gmail.com</span>
    </div>
    </div>
    <div itemscope itemtype="http://schema.org/Place">
    <div itemprop="geo" itemscope itemtype="http://schema.org/GeoCoordinates">
    <meta itemprop="latitude" content="46.1833" />
    <meta itemprop="longitude" content="-1.0667" />
    </div>
    </div>
    </div>
    </header>
    <div id="banniere" class="banniere"> 
    <img src="http://www.papillote17.com/photos/page8/Location-vacances-derniere-minute-La-Rochelle-1.jpg" alt="Location de vacances derni&egrave;re minute &agrave; La Rochelle" />
    <img src="http://www.papillote17.com/photos/page8/Location-vacances-derniere-minute-La-Rochelle-2.jpg" alt="Location de vacances derni&egrave;re minute &agrave; Chatelaillon" />
    <img src="http://www.papillote17.com/photos/page8/Location-vacances-derniere-minute-La-Rochelle-3.jpg" alt="Location de vacances derni&egrave;re minute &agrave; La Rochelle &icirc;le de R&eacute;" />
    <img src="http://www.papillote17.com/photos/page8/Location-vacances-derniere-minute-La-Rochelle-4.jpg" alt="Location de vacances derni&egrave;re minute &agrave; Charente martime" />
    <img src="http://www.papillote17.com/photos/page8/Location-vacances-derniere-minute-La-Rochelle-5.jpg" alt="Location de vacances derni&egrave;re minute" />
    </div>
    <section class="deux_sections_gauche">
    <p>Les titres de l'actualit&eacute; des Dimeries</p>
    <ul><li><a href="http://www.papillote17.com/article-fr-29">Autres adresses de location de vacances</a><br/>Publi&eacute; le 18/11/2013</li></ul><ul><li><a href="http://www.papillote17.com/article-fr-28">Activit&eacute;s pour les enfants dans les environs de La Rochelle</a><br/>Publi&eacute; le 7/09/2013</li></ul><ul><li><a href="http://www.papillote17.com/article-fr-27">A visiter &agrave; Rochefort...</a><br/>Publi&eacute; le 24/08/2013</li></ul><ul><li><a href="http://www.papillote17.com/article-fr-25">Hébergement pour la Foire exposition de La Rochelle 2013</a><br/>Publi&eacute; le 15/08/2013</li></ul><ul><li><a href="http://www.papillote17.com/article-fr-24">Hébergement pour le Grand Pavois 2013</a><br/>Publi&eacute; le 15/08/2013</li></ul>
    </section>
     
     
     
     
    <section class="deux_sections_droite">
    <h2>Location de vacances La Rochelle en Charente maritime derni&egrave;re minute</h2>Aucun article sélectionné !</section>
    <footer>
    <a href="http://www.papillote17.com/plan-du-site.php" class="plan-du-site">Plan du site</a>
    Contactez-nous : Claude et Alain CHAZOT - 12, rue des dimeries - 17139 Dompierre sur mer - T&eacute;l: 05 46 67 30 78 - Mobile : 06 87 97 99 81 - email : <a href="mailto:dimeries12@gmail.com?subject=Location%20appartement%20Les%20dimeries&amp;cc=claude.chazot@neuf.fr">dimeries12@gmail.com</a>
    </footer>
    <script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
    <script type="text/javascript" src="http://www.papillote17.com/js/responsivemobilemenu.js"></script>
     
    <script type="text/javascript">
     
      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-37347333-1']);
      _gaq.push(['_trackPageview']);
     
      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
      })();
     
    </script>
    <script>(function(d, s, id) {
      var js, fjs = d.getElementsByTagName(s)[0];
      if (d.getElementById(id)) return;
      js = d.createElement(s); js.id = id;
      js.src = "//connect.facebook.net/fr_FR/all.js#xfbml=1";
      fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));
    </script>
    </body>
    </html>

  6. #6
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 324
    Par défaut
    ton fichier libs/connexion-sql.php est en ut8 avec BOM

    ligne 5 tu as le BOM : 

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

Discussions similaires

  1. Balises title et meta dynamiques
    Par Geprocor dans le forum Langage
    Réponses: 18
    Dernier message: 07/07/2008, 16h05
  2. syntaxe non-valide W3C
    Par Msieurduss dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/06/2008, 09h07
  3. Balise title dynamique
    Par bluefish63 dans le forum Langage
    Réponses: 11
    Dernier message: 11/05/2008, 10h38
  4. [W3C] Code item de liste non valide dixit w3c validator !!
    Par Christophe Charron dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 19/02/2006, 15h10

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