Session PHP et W3C

Fermé
Fornikator - 27 août 2010 à 23:02
 Profil bloqué - 29 août 2010 à 14:48
Bonjour,

Je veux valider mon site W3C, il est valide quand je copie/colle le code source dans le validateur, mais quand je donne l'URL il n'est plus valide car il y a une session PHP sur cette page, donc voici comment j'utilise les sessions.

<form method="post" action="./contact_send.php">
<p><span style="color : red;"><?php echo $_SESSION['1']; ?> + <?php echo $_SESSION['2']; ?> =</span> <input type="text" name="somme" size="1" maxlength="2" /></p>
<p><input type="submit" value="OK" /></p>
</form>


Voici l'erreur :
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

...nput type="hidden" name="PHPSESSID" value="0a510869d8dec358cf2875406574c478" />

6 réponses

Personne ?
0
Profil bloqué
28 août 2010 à 11:35
Si tu as ce truc de phpssid, c'est que tu est chez ovh et que tu as du leur donner via htacces l'ordre d'utiliser une version de php.

Le truc que j'utilise pour faire fonctionner le systeme c'est:
ini_set('session.use_cookies', '1');
ini_set('session.use_only_cookies', '1'); // PHP >= 4.3
ini_set('session.use_trans_sid', '0');
ini_set('url_rewriter.tags', '');
session_start();


voila j'espere que c'a ta aider car j'ai eu pas mal de difficulter pour trouver cette solution sur le net.
0
Oui je suis chez OVH et dans le htaccess j'ai activé le PHP 5.

Quel est le but du code ?
0
notobe Messages postés 1952 Date d'inscription mercredi 11 novembre 2009 Statut Membre Dernière intervention 8 juillet 2011 213
28 août 2010 à 13:43
Rien à voir avec php, c'est le code html généré par le script qui n'est pas valide.
Suffit de lire ;)

L'élément input doit être dans contenu dans un élément comme <p>, <h1>, <h2>..., <fieldset> etc.
0
Et donc je doit corrigé quoi pour plus qu'il y à ça ?
0
notobe Messages postés 1952 Date d'inscription mercredi 11 novembre 2009 Statut Membre Dernière intervention 8 juillet 2011 213
Modifié par notobe le 28/08/2010 à 17:43
Le code généré donne quoi exactement ? (c'est à dire le code html obtenu après l'interprétation php, correspondant aux echo $_session[])
0
Je le vois pas dans le code source...
0
notobe Messages postés 1952 Date d'inscription mercredi 11 novembre 2009 Statut Membre Dernière intervention 8 juillet 2011 213
28 août 2010 à 20:39
Donne l'url stp
0
Voila le code :

<form method="post" action="go.php"><input type="hidden" name="PHPSESSID" value="0a510869d8dec358cf2875406574c478" />
<p><input type="text" name="prenom" /></p>
<p><input type="submit" value="OK" /></p>
</form>


Voila c'est : <input type="hidden" name="PHPSESSID" value="0a510869d8dec358cf2875406574c478" /> qui est ajouté.

Comment faire pour que ce soir valide ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
D'accord mais a quoi sert ça ?
ini_set('session.use_cookies', '1');
ini_set('session.use_only_cookies', '1'); // PHP >= 4.3
ini_set('session.use_trans_sid', '0');
ini_set('url_rewriter.tags', '');
0
Avec ovh, il y a le probleme de la gestion de la version du php.
Apres avoir active un php qui n'est pas celui par defaut, le premier element dans la page recoit le bout de code phpsside qui indique au server la version de php sans avoir a relance le systeme via l'httaccess le code que je t'est donner sert a mettre les meme informations dans des cookies, evidement cela ne fonctionne pas pour ceux qui n'ont pas les cookie d'active mais il te suffit d'indiquer que les cookie sont necessaire pour le bon fonctonnement du site.

(pour celui qui a dis que mon code ne servait a rien, il faut se renseigner un peu plus :p car beaucoup de monde a ce soucis avec ovh. vivement qu'il active la version 5 par defaut.)
Signature hors charte
0
notobe Messages postés 1952 Date d'inscription mercredi 11 novembre 2009 Statut Membre Dernière intervention 8 juillet 2011 213
Modifié par notobe le 28/08/2010 à 21:06
pour celui qui a dis que mon code ne servait a rien
??? tu as lu ça où ?

Ça n'a juste rien à voir avec la validation du code html.
Il y a un input (pas ceux déjà dans le code donné, mais visiblement généré les echo) qui ne doit pas être dans un élément block.
Faut voir le code généré, et ça n'a donc, a priori, rien à voir avec la version de php...
0
Profil bloqué
28 août 2010 à 22:26
Celui qui a coller un -1 a mon premier message.

Quand au problème du phpssid, je n'est pas dit que c'est un problème de session mais de version de php lie a ovh.
Il utilise une méthode très spéciale pour appliquer une version de php plutôt qu'une autre, la version par défaut est je crois la 4.2 et quand tu veux une version plus récente, il faut le demander via un htaccess.
A ce moment la, ovh met au premier élément trouver contenant un lien ou pouvant être transmis à la page suivante le système phpssid qui correspond à la version de php.
Afin d'éviter l'ajout du code en brute, le bidouille a réaliser est de déclarer avant quoi que ce soit y compris le session_start() le code que j'ai donner qui vas alors stocker les valeur que php veut écrire dans des cookies.

ini_set('session.use_cookies', '1');
ini_set('session.use_only_cookies', '1'); // PHP >= 4.3
ini_set('session.use_trans_sid', '0');
ini_set('url_rewriter.tags', '');


Ainsi, on dispose d'un code propre et valide sans avoir la perte de fonctionnalité lié aux vieille version de php par défaut.

Je l'utilise sur mon site afin de ne plus avoir le code php qui est transmis avec les liens.
0
Merci Japan-O-Fan, c'est parfait !
0
On question les infos que ce trouve dans le cookie son crypté ? Car c'est pour un captcha.
0
Profil bloqué
29 août 2010 à 14:48
c'est pas ca :)
le cookie ne sert que pour stocke la variable de version de php pour ovh, le reste n'est pas enregistrer dedans donc ce sera sécuriser si tu le fait comme il faut, pense alors a empecher les injection sql, les codes html ou javascript ce genre de chose a la base apres en ettant parano, on peut penser a faire un remplacemnt de caractere ce qui ferait que tout script envoyer ne pourrait etre compris et appliquer pour l'action prevue puis a l'affichage faire l'operation inverse.
0