Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[debutant] XHTML, PHP, formulaires

5 réponses
Avatar
Yerbouti
Bonjour à tous,

Je ne sais pas si c'est le bon forum ?

Je veux valider XHTML strict un formulaire au sein d'une page php.

Quand je lance le validateur W3C sur la page ci après, apparait dans le
code source un input de type hidden qui est dû à mon session_start() et
qui ne passe pas la validation.
Comment faire sachant que j'ai besoin de récupérer des variables de session.
Dois-je renoncer au xhtml strict ?
Dois-je modifier ma gestion des sessions en php ?

Le code en résumé :
------------------------------
<?
session_start() ;
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"
lang="fr">';
echo '<head>';
echo '<title>Mon titre</title>';
echo '<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />';
echo '</head>';
echo '<body>';
?>

<form method="post" action="destination.php">
<p>Identifiant <input type="text" name="variable" /></p>
</form>

<? echo '</body></html>'; ?>
----------------------------------

P. Lecouffe
patrick (a)lecouffe.org

5 réponses

Avatar
Frederic BISSON
Quand je lance le validateur W3C sur la page ci après, apparait dans le
code source un input de type hidden qui est dû à mon session_start() et
qui ne passe pas la validation.
A ma connaissance, session_start ne génère pas de code HTML. Cela

impliquerait que session_start analyse ton code HTML et détermine où
devrait se plaçait ton champ hidden.

Ce qui nous serait plus utile, c'est l'erreur que t'indique le validateur
W3C. J'utilise régulièrement session_start, il ne m'a jamais généré
de code HTML et j'utilise XHTML 1.1

@+

Frédéric

Avatar
Guillaume Bouchard
Yerbouti wrote:
Bonjour à tous,

Je ne sais pas si c'est le bon forum ?


Si la moderation a fait passer, c'est que cela dois etre le bon :) (Quoi
que, ils sont particulier à la moderation :)

Je veux valider XHTML strict un formulaire au sein d'une page php.


Hoo, que j'aime entendre cela.

Quand je lance le validateur W3C sur la page ci après, apparait dans le
code source un input de type hidden qui est dû à mon session_start() et
qui ne passe pas la validation.


Oui, car il faut mettre les input dans des boite de type bloc, c'est la
loi et php s'en fout royalement.

Comment faire sachant que j'ai besoin de récupérer des variables de
session.
Dois-je renoncer au xhtml strict ?


Non, surtout pas :)

Dois-je modifier ma gestion des sessions en php ?


Tu as plusieurs techniques, voir même un mixte des deux.

1) tu laisses tomber les session native php, on fait la meme chose en 4
lignes et deux select, et ça à le merite de faire ce que l'on veux.
2) tu laisse tomber le transfert de la session par id. Mon avis est que
si la personne refuse les cookie (ce qui est toujours le cas, ne me
parlez plus de navigateurs qui ne conaissent pas, ca n'existent plus (ou
alors ils ne gerent pas non plus les formulaires :) et bien c'est son
choix et nous n'avons pas le droit de lui imposer des session si elle
n'en veux pas.

Mixte des deux : Session à la main sans id dans l'url ou par form, juste
des cookies. Miam, ca me donne faim.

Voila Voila :)

--
Guillaume.

Avatar
Yerbouti
Quand je lance le validateur W3C sur la page ci après, apparait dans le
code source un input de type hidden


Ce qui nous serait plus utile, c'est l'erreur que t'indique le validateur
W3C.
Voici quelques éléments :

La page qui ne passe pas le validateur est
http://balades.lecouffe.org/identification/identification.php
(c'est un site de test sans prétentions graphiques :-))

La réponse du validateur est :
http://validator.w3.org/check?uri=http%3A%2F%2Fbalades.lecouffe.org%2Fidentification%2Fidentification.php%3F

J'ai un peu mieux cerné le problème grâce à :
http://bugs.php.net/bug.php?id472

J'ai essayé les solutions proposées mais cela n'a pas l'air de
fonctionner avec mon hébergement chez online.

Il va donc sans doute falloir que je renonce au xhtml 1.1 strict dans
mes pages avec formulaires.

Bien cordialement


Avatar
Yerbouti
Yerbouti wrote:

Je veux valider XHTML strict un formulaire au sein d'une page php.

Hoo, que j'aime entendre cela.



Je prends cela comme un compliment :-)

Quand je lance le validateur W3C [...] apparait dans
le code source un input de type hidden [...] qui ne passe pas la validation.

Oui, car il faut mettre les input dans des boites de type bloc, c'est la
loi et php s'en fout royalement.


Dois-je modifier ma gestion des sessions en php ?



Tu as plusieurs techniques, voir même un mixte des deux.

1) tu laisses tomber les session native php, on fait la meme chose en 4
lignes et deux select.
2) tu laisse tomber le transfert de la session par id. Mon avis est que
si la personne refuse les cookie [...] nous n'avons pas le droit de
lui imposer des session si elle n'en veux pas.

Mixte des deux : Session à la main sans id dans l'url ou par form, juste
des cookies. Miam, ca me donne faim.

Voila Voila :)

Merci du tuyau.

Ma balise [debutant] m'autorise t'elle à demander quelques indices pour
la mise en oeuvre de cette solution miracle ? Un exemple de code par
exemple ;-)

Si cela prend de la place inutile sur ce forum, il y a toujours
patrick(a)lecouffe.org


Avatar
Guillaume Bouchard
Yerbouti wrote:
Je veux valider XHTML strict un formulaire au sein d'une page php.
Hoo, que j'aime entendre cela.
Je prends cela comme un compliment :-)




C'est le cas.

Merci du tuyau.
Ma balise [debutant] m'autorise t'elle à demander quelques indices pour
la mise en oeuvre de cette solution miracle ? Un exemple de code par
exemple ;-)


D'algo, oui, de code, la flemme de detarer mon archive de bout de code :)


1) Verifier si un ID de session existe dans le cookie
1.1) Si oui :
1.1.1) DELETE from tbl where timeout < NOW() OR timeout = NOW() - 3*60
1.1.2) Faire un UPDATE from tbl SET timeout = NOW() +3*60 WHERE id=truc
1.1.3) Si il y a eu des lignes modifiées ( mysql_affected_row) -->
La session existe


Après, dés que tu as ton id de session, tu peut recuprer ce que tu veux
ou tu veux (exemple si tu veux le pannier de ton client, tu as une table
pannier qui references les items correspondant à la session...)

Bonne chance pour coder.


Si cela prend de la place inutile sur ce forum, il y a toujours
patrick(a)lecouffe.org


Ce qui prend de la place sur ce forum, ce sont les citations trop
longues, j'ai faillit ne pas laisser passer celle-ci, elle est limite...

--
Guillaume.