Validation XHTML 1.0 strict. Erreur incomprise.

Eléphanteau du PHP | 17 Messages

19 déc. 2006, 13:35

Bonjour à tous,

http://validator.w3.org/check?uri=http% ... ccueil.php
Voici le resultat de la validation.

http://site.novagame.info/accueil.php
Voici la page

Les erreurs 1 & 3 sont VOLONTAIRES. C'est pour mieux reperer la ligne qui provoque l'erreur 2 qui me pose probleme.

Je ne comprends pas l'erreur deux, je ne retrouve d'ailleurs pas dans ma page le texte affiché. Si quelqu'un pouvait m'aider à la localiser et comprendre.
Error Line 44 column 149: document type does not allow element "input" here; missing one of "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "address", "fieldset", "ins", "del" start-tag.

...="d8d7c80d49e624f0fe8525cd125c726a" />
Il n'y a pas ce passage dans ma page ...

Merci de votre aide,

Si quelqu'un voit d'autres erreurs graves de validation, n'hésitez pas a m'en parler, ici, via msn : [email protected] ou par mp ou mail.

Merci encore pour toute votre aide.

Mammouth du PHP | 19672 Messages

19 déc. 2006, 14:39

À l'intérieur d'un formulaire, les éléments doivent être inclus dans un élément de bloc, donc par exemple un <p> ou encore un <fieldset>. Comme tu as défini des <div>, tu peux déplacer le champ caché à l'intérieur de ce <div> et l'erreur va disparaitre.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 17 Messages

19 déc. 2006, 14:56

Merci de ton aide, mais je ne comprends pas tres bien on me dit que je peut mettre les input dans des divs ... c'est ce que j'ai fait. Le formulaire lui meme est tout entier dans un div ...

Du coup je ne comprends pas bien comment placer les inputs dans un block mieux que cela car il y sont deja.

N'hesite pas a me montrer si c'est simple, j'ai pourtant deja tenté de mettre chaque input dans un <p>

Merci de ton aide.

Code : Tout sélectionner

<div id="box_login"> <form method="post" action="/accueil.php" id="box_login_form"> <div id="log_newpass"> <a href="http://site.novagame.info/renvoi_password.php">novaPass perdu ?</a> </div> <div id="log_loggin"> <input type="text" tabindex="1" title="Saisissez votre novaLog" maxlength="12" name="client_login" class="log_ipt98" value="" /> </div> <div id="log_password"> <input type="password" tabindex="2" title="Saisissez votre novaPass" maxlength="10" name="client_password" class="log_ipt80" value="" /> </div> <div id="log_submit"> <input type="image" src="design/global/log.png" title="Se connecter" tabindex="3" class="log_pic" /> </div> </form> </div>
Quand au champs caché, je ne sais meme pas a quoi exactement fait reference l'erreur. Toutefois j'ai une toute petite partie de php :

Code : Tout sélectionner

<?php echo $_SERVER['PHP_SELF']; ?>
C'est la partie qui donne le action="/accueil.php" je l'ai remplacée par action="/accueil.php" et ca ne change rien au soucis.

Mammouth du PHP | 19672 Messages

19 déc. 2006, 15:37

Regarde le code sur la page de validation :

Code : Tout sélectionner

<form method="post" action="/accueil.php" id="box_login_form"><input type="hidden" name="PHPSESSID" value="d95624870d4ed831d8a6c0969d790b70" /> <div id="log_newpass">
Tu as un champ caché entre la balise <form> et le premier <div>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 17 Messages

19 déc. 2006, 15:49

Exact je viens de le voir,

Mais étant donné que ce n'est pas moi qui le crée (et je sais pas ce qu'il fou la car j'accepte les cookies) je ne vois pas trop comment l'empecher d'apparaitre,

J'ai essayé de mettre un div juste apres ma balise <form> mais ca ne marche pas ... il se colle a la balise form quoi qu'il arrive ...

Une idée de pourquoi il est la ?
Une idée de comment le modifier ?
Une idée pour reparer l'erreur ?

Merci de ton aide.

Mammouth du PHP | 19672 Messages

19 déc. 2006, 16:18

D'où sort ce champ caché :?:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 17 Messages

19 déc. 2006, 16:31

Aucune idée ... il n'est pas ajouté en ajax, ni en javascript, et il n'est pas dans mon script a l'origine.

J'immagine que c'est le "validateur" qui le renvoi pour verifier que les infos passent quand y'a les cookies desactivés ou un truc du genre ...

C'est ce que j'aimerait savoir pour voir d'ou ca viens,

Je vais lancer un peu google maintenant que j'ai compris d'ou viens l'erreur on sait jamais.

Si quelqu'un a des infos, n'hesitez pas.

Merci de votre aide.

Eléphanteau du PHP | 17 Messages

19 déc. 2006, 16:43

Resolu via google avec votre aide.

Il faut desactiver les session.use_trans_sid, c'est un bug connu sur le net.

La dificulté est que c'est impossible a faire sur ovh via les deux moyens normaux.

J'utilise donc ceci au debut de chaque page :

Code : Tout sélectionner

ini_set("session.use_trans_sid","Off"); session_cache_limiter('nocache'); session_start();