htmlspecialchars - les sessions

Rechercher

htmlspecialchars - les sessions

Par SylvainM  -  4 reponses  -  Le 03/07/2010 21:30  -  Editer  - 

Bonjour,

Je viens de réaliser le tutoriel " Les bases du langage PHP : 12. Les sessions" : vraiment très clair ! Merci !

Par contre j'ai une question au sujet de " htmlspecialchars" :

<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">

car à le fin de mon code, après la balise j'ai écrit ces lignes pour vérifier que cela fonctionnait bien :

Et lorsque j'écrit mon identifiant de la sorte :exemple, "exemple" apparaît en gras ?

Merci pour votre aide.

 

Réponses apportées à cette discussion

Par Cyrano  -  Le 05/07/2010 09:55  -  Haut de page  - 

Salut Sylvain,

je crois qu'il y a quelques amalgames, on va tenter d'y remédier.

Le premier point, c'est l'utilisation de la fonction htmlspecialchars() pour l'attribut action de ta balise form : je recommande davantage l'utilisation de urlencode() qui est beaucoup plus appropriée puisque cet attribut attend en paramètre une URL de destination vers la page de traitement de ton formulaire.

Ensuite $_SERVER['PHP_SELF'] est déjà formatté pour passer dans une URL, donc l'utilisation de la fonction devient inutile à ce stade.

Ensuite la fonction print_r() :ce que tu vas saisir dans ton formulaire sera affiché tel que tu l'auras écrit sans traitement particulier si ce n'est que $_POST étant un tableau, tu auras des informations sur chacun des champs reçus du formulaire. Et si dans un ce ces champs tu as saisi du codeHTML, il sera interprété par ton navigateur. Tu verras donc « exemple » en gras pour reprendre ton exemple. Si tu veux voir ton code HTML tel que tu l'as saisi, je te recommande l'utilisataion de la fonction htmlentities() qui va, entre autres choses, transformer les « < » en « < » et « > » en « > »: dans ce cas, le nabigateur interprètera les entités et en affichera leur signification à l'écran sans interpréter ces significations bien entendu.

Fais des essais, tu vas voir que ce n'est en fin de compte pas vraiment sorcier ;)

 
Par SylvainM  -  Le 05/07/2010 22:34  -  Haut de page  - 

Salut Cyrano,

Tout d'abord merci pour ton aide, ça fait du bien d'être écouté dans mon désert d'amalgames ! Franchement pour moi c'est un peu sorcier le PHP mais je compte bien apprendre à décripter tout ça !

Je vais essayer tout ce que tu me dis. De toute façon ce soir j'ai essayé de mettre ces pages en ligne et là ça ne marchait pas, autant en local tout fonctionnait mais là ..., voici la réponse :

 

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /homez.358/synergiey/www/login.php:1) in /homez.358/synergiey/www/login.php on line 24

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /homez.358/synergiey/www/login.php:1) in /homez.358/synergiey/www/login.php on line 24

Warning: Cannot modify header information - headers already sent by (output started at /homez.358/synergiey/www/login.php:1) in /homez.358/synergiey/www/login.php on line 28

 

Resolitude ...

Je vais commencer par regarder sur le forum pour voir si personne n'a pas déjà eu ce problème et voir comment le résoudre.

Mais je ne suis pas contre des indices ! Afin de devenir moi aussi sorcier :-)

Encore merci ! ! !

 

 
Par Cyrano  -  Le 06/07/2010 06:27  -  Haut de page  - 

Salut SylvainM,

ces messages d'erreur là sont de grands classique, tu devrais effectivement trouver des sujets qui en traitent. Pour te mettre sur la voie, dis-toi que lorsque tu commences à envoyer des données du serveur vers le client, certaines opérations deviennent impossible comme par exemple lancer une session. Donc, par exemple, on ne met jamais un echo() avant un session_start().

Mais ceci dit, les messages d'erreur sont important et te donnent des indications : « login.php ligne 24 » te montre où est l'erreur, à tout le moins près de quelle ligne parce que quelque fois l'erreur est située sur la ligne précédente,

Il y a aussi un truc simple : copie le début du message d'erreur et colle ça dans Google, tu vas voir probablement quelques milliers de réponses.

 
Par SylvainM  -  Le 14/07/2010 23:19  -  Haut de page  - 

Salut Cyrano,

J'ai fait des recherches mais je ne trouve pas la solution à mon problème, j'ai toujours cette ligne qui apparaît ...

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /homez.358/synergiey/www/page_privee.php:1) in /homez.358/synergiey/www/page_privee.php on line 2

... J'ai trouvé un semblant de solution sans pour autant comprendre comment la mettre en place avec "session_name". Le problème c'est qu'Emacs n'en parle pas dans son tuto.

J'espère que tu liras ce message. Merci !

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !

Identifiez-vous
Join |  ID/MDP? |