Version complète: sur le forum Webmaster Hub : W3C et page protégée
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net
Ipszy
Bonjour à vous ! smile.gif

J'ai un soucis de validation de mes pages en php.
Toutes celles qui sont protégées par l'authentification du mot de passe avec ce code
CODE
<?php include 'authentification.php'; ?>

ne passe pas au validateur W3C.
D'après W3C, si je comprends bien je dois avoir une erreur dans mon doctype.
J'ai parcouru tout le tutoriel : comment bien choisir son doctype mais je ne trouve pas.
Voila le lien pour valider une de mes pages qui ne passent pas.
Pouvez-vous m'aider SVP?
captain_torche
Lorsqu'on regarde la source de la page qui ne valide pas, on trouve ceci :
CODE
Vous n'êtes pas connecté<br><A href="connexion.php">Cliquez ici pour retourner à la page de connexion</A>
.
Tu n'as pas de balise HTML, head, body ... rien de tout ça ! Normal que la validation ne s'effectue pas.

Ensuite ... Est-il absolument nécessaire de valider ce genre de page ?
Monique
Bonjour,

Je ne suis pas certaine de bien comprendre le sens de ta question... sans login ni mot de passe, personne ne peux avoir accès aux pages en question (qu ce soit l'un de nous pour voir éventuellement ce qui y cloche, ou le validateur pour évaluer le code).

Le seul moyen de valider ces pages-là, c'est de coller directement le code via l'onglet Validate by Direct Input.
Ipszy
Merci pour votre aide!

En fait, si j'ai compris la réponse de captain_torche, ce ne sont pas mes pages du site qui passent au validateur lorsqu'elles sont protégées, mais c'est ma page qui sert à l'authentification. Et il est vrai que celle-ci n'a pas de doctype.

CODE
<?php

// on retrouve la session et on l'ouvre
if (!isset($_POST["login"])) { session_start(); }

// connexion à la BDD
$BDD=mysql_connect ( getenv("MYSQL_HOST"),"login","mdp" );
mysql_select_db (getenv("MYSQL_DATABASE"));
If (!$BDD) { die("Connexion echouée !"); }

// on vérifie le login et le mot de passe par rapport à la BDD
$req = "SELECT * FROM identification WHERE login='".$_SESSION['login']."' and mdp='".MD5($_SESSION['mdp'])."' and activation='1'";
$rep = mysql_query($req);

If (mysql_num_rows($rep) > 0)
{
    // connexion OK
    
    // une petite variable si jamais on en a besoin dans le reste de la page à afficher
    $login = $_SESSION["login"];
}
else
{
    // connexion incorrecte
    echo "Vous n'êtes pas connecté<br><A href=\"connexion.php\">Cliquez ici pour retourner à la page de connexion</A>";
    exit();
}

?>


Est-ce que si je mets un lien vers une page au lieu de juste un echo ça peut régler mon problème?
captain_torche
Tu peux, comme te l'a dit Monique, utiliser l'onglet "Validate by direct input".
Tu peux également, si tu utilises Firefox, installer une extension qui effectue ma validation, comme HTML Validator.
Ipszy
Vous avez tout les deux raisons et cela a été fais.

En remplaçant echo par include vers une page à résolu mon problème. smile.gif

Merci de vous être intéressé sur ma demande.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.