Hi Kjell,

Zend_Validate_Between does not measure string lengths; it validates a
value that falls between minimum and maximum values. Please try
Zend_Validate_StringLength.

Best regards,
Darby

Kjell Bublitz wrote:
> Hello List!
>  
> My problem is that i am sending a long enough string (12345 and
> 123456789, see below), but i always get NOT_BETWEEN
>  
> I am new to ZF but i am trying to do my best getting this to work. I am
> using ZendFramework 1.0.1
>  
> Please check out the following three snippets and help me out.
>  
> Thank you
>  
> --------------
> SETUP
>  
>   $filters = array(
>    '*'     => array('StringTrim', 'StripTags'),
>    'id' => 'Digits',
>    'page'  => 'Alpha'
>   );
>   
>   $validators = array(
>    'username' => array(
>     new Zend_Validate_Alnum(),
>     new Zend_Validate_Between(4, 30),
>     'breakChainOnFailure' => true,
>     'messages' => array(
>      0 => array(
>       Zend_Validate_Alnum::STRING_EMPTY => 'Please enter your username
> in the field below.',
>       Zend_Validate_Alnum::NOT_ALNUM => 'Usernames may only contain
> numbers and letters, without spaces.'
>      ),
>      1 => array(
>       Zend_Validate_Between::NOT_BETWEEN => '%value% - Usernames must be
> between %min% and %max% characters.'
>      )
>     )
>    ),
>    'password' => array(
>     new Zend_Validate_Alnum(),
>     new Zend_Validate_Between(8, 30),
>     'breakChainOnFailure' => true,
>     'messages' => array(
>      0 => array(
>       Zend_Validate_Alnum::STRING_EMPTY => 'Please enter your password
> in the field below.',
>       Zend_Validate_Alnum::NOT_ALNUM => 'Passwords may only contain
> numbers and letters, without spaces.'
>      ),
>      1 => array(
>       Zend_Validate_Between::NOT_BETWEEN => '%value% - Passwords must be
> between %min% and %max% characters.'
>      )
>     )
>    )
>   );
>   
>   $options = array(
>       'allowEmpty' => false,
>       'breakChainOnFailure' => false,
>       'escapeFilter' => 'HtmlEntities',
>       'missingMessage' => 'Field %field% is required by rule %rule%, but
> the field is missing',
>       'notEmptyMessage' => 'You must give a non-empty value for field
> %field%',
>       'presence' => 'optional'
>   );
>   
>   $input_data = array_merge_recursive($_POST, $_GET); // combine
>   $this->input = new Zend_Filter_Input($filters, $validators,
> $input_data, $options);
>  
> --------------
> TEST
>  
> if ($this->input->hasInvalid() || $this->input->hasMissing()) {
>   $messages = $this->input->getMessages();
>   Zend_Debug::Dump($messages);
> }
>  
> --------------
> OUTPUT, after sending a 5 char long string and 9 char long string
> 
> array(2) {
>   ["username"] => array(1) {
>     [0] => string(54) "12345 - Usernames must be between 4 and 30 characters."
>   }
>   ["password"] => array(1) {
>     [0] => string(58) "123456789 - Passwords must be between 8 and 30 
> characters."
>   }
> }
> 
> As you can see by the output, it doesn't even make sense out of itself. 
> 
> Something weird is going on here .. 
> 
> Thanks for your time!
> 
>  

Reply via email to