developer.jelix.org is not used any more and exists only for history. Post new tickets on the Github account.
developer.jelix.org n'est plus utilisée, et existe uniquement pour son historique. Postez les nouveaux tickets sur le compte github.

Opened 9 years ago

Last modified 8 years ago

#1423 assigned new feature

Appliqué un des filtres supplémentaires dans jForms pour "préparer" les données

Reported by: nesswaw Owned by: FlorianLB
Priority: normal Milestone:
Component: jelix:forms Version: 1.2.4
Severity: normal Keywords:
Cc: f.lonqueu.brochard+jelix-trac@… Blocked By:
Blocking: Documentation needed: no
Hosting Provider: Php version:

Description

Bonjour,

Dans jForms, par exemple, il n'est pas possible d'appliqué un trim() automatiquement. Exemple:

J'ai un simple jForms:

<input ref="nom" type="string" required="true">
    <label>Nom</label>
</input>

<input ref="prenom" type="string">
    <label>Prénom</label>
</input>

Seul le nom est requis, dans ce cas là pas de problème, mais le prénom est à choix, et si le visiteur tape " abcde", alors ma variable contiendra aussi " abcde", je suis obligé de faire un trim() à la main pour obtenir "abcde".

Je pense à un nouvel attribut du style trim="true/false/ltrim/rtrim" dans jForms

On pourrais aussi penser à un nouvel attribut du genre "xss_clean" qui applique automatiquement un htmlspecialchars

Un peu comme dans Codeigniter => http://codeigniter.com/user_guide/libraries/form_validation.html#preppingdata je trouve cette fonction pas mal.

Qu'en pensez-vous?

Change History (4)

comment:1 Changed 9 years ago by laurentj

  • Component changed from jelix to jelix:forms

à rapprocher du ticket 1401

On pourrais aussi penser à un nouvel attribut du genre "xss_clean" qui applique automatiquement un htmlspecialchars

Certainement pas.

Ce que tu reçois d'un formulaire, et donc ce que tu stockes en base de donnée, doit être "html agnostic". En clair cela doit rester de la donnée brute. Sinon bonjour les conversions quand tu voudras exporter ces données pour en faire autre chose que de les intégrer dans une page web (ne serait-ce que générer des emails texte par exemple).

L’échappement doit se faire au moment de l'affichage, pas avant (modifieur eschtml dans jtpl).

comment:2 Changed 9 years ago by laurentj

note que du "xss clean" n'est pas équivalent à htmlspecialchars. htmlspecialchars évite que le navigateur interprète le contenu, mais ne fait pas de "nettoyage". Pour cela il vaut mieux passer par un strip_tags ou si on ne veut garder que les balises innoffensives, jFilter::cleanHtml (executé pour les >htmleditor> ou <input type="html">)

comment:3 Changed 8 years ago by laurentj

  • Status changed from new to confirmed

comment:4 Changed 8 years ago by FlorianLB

  • Cc f.lonqueu.brochard+jelix-trac@… added
  • Owner set to FlorianLB
  • Status changed from confirmed to assigned

Je m'en occupe.

Ce que je pensais faire :

  • "trim" ne s'utilise que sur input[type=string] et textearea et possède 4 valeurs différentes (false|true|ltrim|rtrim)
  • Si on se trouve dans un de ces cas, on utilise un nouveau datatype (jDatatypeTrim par ex)

C'est pas forcement très générique, mais ça suffit si l'on implémente que trim.

Note: See TracTickets for help on using tickets.