Problème avec les includes et la validation du code html

Signaler
Messages postés
3032
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
26 juillet 2021
-
Messages postés
2426
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
26 juillet 2021
-
bonsoir a tous
je me trouve devant un dilemme
je suis occupé a passer au peigne fin mes erreurs de syntaxe avec l outil https://validator.w3.org/nu/

dans ma page index j ai plusieurs includes qui sont juste des parties de codes

lorsque je passe mon fichier index.php dans le validateur
il m indique qu il me manque la mise en page pour les pages includes
et lorsque je rajoute la mise en page sur les pages includes

il m indique des erreurs dans ma page index

je dois choisir quoi ???

5 réponses

Messages postés
2426
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
26 juillet 2021
453
Bonjour,

La validateur validator.w3.org permet de valider du code HTML mais ne peut pas interpréter du code PHP. Si le fichier index.php que tu essayes de valider contient du code PHP, ce validateur ne pourra pas fonctionner correctement.

Si ton site est accessible sur internet, le plus simple serait d'utiliser le lien http de la page à valider plutôt que d'uploader le fichier index.php.

Pour une réponse plus précise, il faudrait nous partager les messages d'erreurs indiqués par le validateur ainsi que le code html de la page à valider (ou le lien si cette page est accessible en ligne).

Bonne journée,
Messages postés
3032
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
26 juillet 2021
139
personne pour me répondre svp
Messages postés
3032
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
26 juillet 2021
139
bonjour Pitet
merci pour ton aide

je reviens après avoir testé longuement ce validator.w3.org
et surtout avec les includes
en voici la conclusion
si dans la page il y a des includes
validator.w3.org va les analyser en les incorporant dans le code
donc je prends un exemple
si j ai une page php ou html de structure normale avec un include



<!doctype html>
<html lang="fr">
<head>
  <meta charset="utf-8">
  <title>Titre de la page</title>
  <link rel="stylesheet" href="style.css">
  <script src="script.js"></script>
</head>
<body>
  ...
 <?php include("./include/menu3.php"); ?>
  ...
</body>
</html>



est que le code de l include est ceci

<div class="container">
  <div class="row">
    <div class="col-sm">
      One of three columns
    </div>
    <div class="col-sm">
      One of three columns
    </div>
    <div class="col-sm">
      One of three columns
    </div>
  </div>
</div>


il y aura des erreurs car il manque la structure minimum donc un html , body et head
dans le include

si a présent

l include est constitue de cette façon
il dira également qu il y a une erreur car il va trouver deux fois html , body et head

<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous">

    <title>Hello, world!</title>
  </head>
  <body>


<div class="container">
  <div class="row">
    <div class="col-sm">
      One of three columns
    </div>
    <div class="col-sm">
      One of three columns
    </div>
    <div class="col-sm">
      One of three columns
    </div>
  </div>
</div>
    <!-- Optional JavaScript; choose one of the two! -->

    <!-- Option 1: jQuery and Bootstrap Bundle (includes Popper) -->
    <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script>

    <!-- Option 2: Separate Popper and Bootstrap JS -->
    <!--
    <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.min.js" integrity="sha384-+YQ4JLhjyBLPDQt//I+STsc9iw4uQqACwlvpslubQzn4u2UU2UFM80nGisd026JF" crossorigin="anonymous"></script>
    -->
  </body>
</html>





validator.w3.org va interpréter le code de cette façon


<!doctype html>
<html lang="fr">
<head>
  <meta charset="utf-8">
  <title>Titre de la page</title>
  <link rel="stylesheet" href="style.css">
  <script src="script.js"></script>
</head>
<body>
<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous">

    <title>Hello, world!</title>
  </head>
  <body>


<div class="container">
  <div class="row">
    <div class="col-sm">
      One of three columns
    </div>
    <div class="col-sm">
      One of three columns
    </div>
    <div class="col-sm">
      One of three columns
    </div>
  </div>
</div>
    <!-- Optional JavaScript; choose one of the two! -->

    <!-- Option 1: jQuery and Bootstrap Bundle (includes Popper) -->
    <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script>

    <!-- Option 2: Separate Popper and Bootstrap JS -->
    <!--
    <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.min.js" integrity="sha384-+YQ4JLhjyBLPDQt//I+STsc9iw4uQqACwlvpslubQzn4u2UU2UFM80nGisd026JF" crossorigin="anonymous"></script>
    -->
  </body>
</html>
</body>
</html>
Messages postés
3969
Date d'inscription
lundi 16 juillet 2007
Statut
Contributeur sécurité
Dernière intervention
26 juillet 2021
1 420
Salut,

Le W3, c'est l'organisme qui gère et certifie les évolutions du HTML. Lui, il veut du HTML et du CSS ; le PHP il connaît pas. Il veut le code final qui sera vu par l'humain qui va visiter ton site.
Donc pour faire la validation, il faut mettre l'adresse de la page internet ou le code généré sur cette même page (clic-droit > afficher la source).
Messages postés
3032
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
26 juillet 2021
139 >
Messages postés
3969
Date d'inscription
lundi 16 juillet 2007
Statut
Contributeur sécurité
Dernière intervention
26 juillet 2021

salut
merci pour la reponse
dans le cas que j explique si je passe le code include sans les balises html body et head il y aura une erreur avec le validateur
donc il a besoin de ces balises minimum

mais si je mets ces balises minimum dans l include et que je passe la page principale dans la validateur il me fera des erreurs car j ai mis des balises dans le include

donc la meilleur solution c est de ne pas mettre dans ce cas de balises html body et head dans l include

puisque quand le validateur va lire mon fichier l include est juste intégrer a mon fichier principal
Messages postés
2426
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
26 juillet 2021
453
Les includes en php sont utilisés pour générer ton document html, et ce coté serveur.
Le validateur html se place coté client. Tout comme le navigateur d'un internaute, il ne se préoccupe pas de comment est généré ton document, tout ce qu'il attend c'est un document html valide.

Ton premier exemple est correct : si tu appel à ce script via un serveur web avec php, il va retourner un document html valide dans ton navigateur. C'est ce rendu final html qu'il faut valider (donc sans code php) :
<!doctype html>
<html lang="fr">
<head>
  <meta charset="utf-8">
  <title>Titre de la page</title>
  <link rel="stylesheet" href="style.css">
  <script src="script.js"></script>
</head>
<body>
  ...
  <div class="container">
    <div class="row">
      <div class="col-sm">
        One of three columns
      </div>
      <div class="col-sm">
        One of three columns
      </div>
      <div class="col-sm">
        One of three columns
      </div>
    </div>
  </div>
  ...
</body>
</html>
Messages postés
3032
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
26 juillet 2021
139
bonsoir Pitet

je suis désolé du retard de ma réponse
mais j ai été fort occupé avec d autres petits soucis

je pense que tu n as pas bien compris ma question

je vais essayer de la formuler différemment

je suis occupé a tester mon site qui contient des includes avec du code html grâce au validateur

donc je rentre mon adresse dans le validateur

il me retourne des erreurs car j ai des balises html head body qui sont manquantes dans les includes

donc je modifie mes includes pour mettre toutes les balises html , body head

je reteste et a ce moment il m indique des erreurs car j ai des html des body et des head en trop

il est vrai que pour moi la solution la plus logique c est que quand je regarde le code source il ne puisse y avoir qu'un seul couple html ; body et head
Messages postés
2426
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
26 juillet 2021
453
Ta dernière phrase est correcte : en regardant le code source html de la page dans la navigateur (clic droit -> Afficher le code source de la page), le document ne doit contenir en effet qu'une seule fois les balises html, head et body.

Peux tu nous donner le lien http de la page que tu essayes de valider si celui-ci est en ligne stp ?
Messages postés
3032
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
26 juillet 2021
139
Voila je ne sais pas par quel miracle
mais je n ai plus d erreur
Messages postés
2426
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
26 juillet 2021
453
J'ai répondu à ton précédent message sans faire attention à celui-ci, tant mieux si tu as résolu ton soucis.
N'oublie pas de passer ton poste en résolu si c'est bien le cas.

Bonne journée,