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

Ticket #1377 (closed enhancement: fixed)

Opened 4 years ago

Last modified 4 years ago

Check plus précis d'un datatypestring

Reported by: hadrien Owned by:
Priority: normal Milestone: Jelix 1.2.3
Component: jelix:forms Version: 1.2
Severity: normal Keywords: jforms
Cc: Blocked By:
Blocking: Documentation needed: no
Hosting Provider: Php version:

Description

Lors d'un check d'un datatype String avec un controle sur la longueur de la valeur, il faut compter le nombre de caractères plus précisément. J'ai rajouté un trim et un comptage unique des groupes d'espaces pour éviter qu'il ne soit trop facile de gruger le controle en rajoutant des caractères blancs.

diff basé sur Jelix 1.2

diff --git a/lib/jelix/utils/jDatatype.class.php b/lib/jelix/utils/jDatatype.class.php
index ace93e8..27dbec4 100644
--- a/lib/jelix/utils/jDatatype.class.php
+++ b/lib/jelix/utils/jDatatype.class.php
@@ -87,7 +87,14 @@ class jDatatypeString extends jDatatype {
 
     public function check($value){
         if($this->hasFacets){
-            $len = iconv_strlen($value, $GLOBALS['gJConfig']->charset);
+            $len = iconv_strlen(
+                trim(
+                    preg_replace(
+                        '@\s+@', ' ', $value
+                    )
+                ),
+                $GLOBALS['gJConfig']->charset
+            );
             if($this->length !== null && $len != $this->length)
                 return false;
             if($this->minLength !== null && $len < $this->minLength)

Change History

comment:1 Changed 4 years ago by laurentj

  • Status changed from new to closed
  • review changed from review? to review+
  • Resolution set to fixed
Note: See TracTickets for help on using tickets.