[fw-general] Re: Zend_Validate_NotEmpty and unchecked radio button marked as required fields

2009-09-10 Thread Martin Carpentier
Hi,

I'm sorry to bring this up again but I'm really surprised there's been no
reply regarding this problem yet.

Can anyone confirm if it's a real issue, in which case I'll open a ticket,
or if it's now the desired behavior of Zend_Validate_NotEmpty for null
values?

Martin Carpentier


On Tue, Sep 8, 2009 at 10:30, Martin Carpentier carpentier.mar...@gmail.com
 wrote:

 Hi again,

 Just following up on the issue I previously described to see if someone can
 confirm the issue and to see if there's a different(better) solution for it.
 It's a problem that need to be solved before I can upgrade our application
 to 1.9.x because it messes with our custom error messages and translations.

 Thank you in advance for your help.

 Martin Carpentier



 On Thu, Sep 3, 2009 at 17:19, Martin Carpentier 
 carpentier.mar...@gmail.com wrote:

 Hi,

 since the modification made to Zend_Validate_NotEmpty in ZF 1.9.0
 (checking the value for valid types) radio buttons set with the required
 flags don't return the proper error message if submitted without any of its
 options checked.

 here's a simple example to recreate the problem:

 // in a TestController
 public function testAction()
 {
 $request = $this-getRequest();

 $form = new Zend_Form();
 $form-setAction('/test/test')
  -setName('formTest')
 ;

 $options = array(
 'no'= 'no',
 'yes'  = 'yes',
 );

 $form-addElement('Radio', 'testRadio', array(
 'label'= test ?,
 'required' = true,
 'multiOptions' = $options,
 ));

 $form-addElement('Submit', 'suivant', array(
 'required' = false,
 'ignore'   = true,
 'label'= 'submit test',
 ));

 if ($this-getRequest()-isPost()) {
 if ($form-isValid($request-getPost())) {
 Zend_Debug::dump($form);
 }
 }

 $this-view-form = $form;
 }

 Now, when submitting the form without selecting any option, we get the
 invalid message: Invalid type given, value should be float, string, or
 integer
 Before 1.9.0 we would get the correct and expected message: Value is
 required and can't be empty

 The problem is caused by the addition of those lines in
 Zend_Validate_NotEmpty:

 if (!is_string($value)  !is_int($value)  !is_float($value) 
 !is_bool($value)) {
 $this-_error(self::INVALID);
 return false;
 }

 With that check in place, a null $value would get flagged as being of an
 INVALID type
 A fix would be to check also that the value is not null like this:

 if (null !== $value  !is_string($value)  !is_int($value) 
 !is_float($value)  !is_bool($value)) {
 $this-_error(self::INVALID);
 return false;
 }

 Let me know if I should submit a bug report... or if I shouldn't be
 expecting that behavior anymore.

 Martin Carpentier





[fw-general] Re: Zend_Validate_NotEmpty and unchecked radio button marked as required fields

2009-09-08 Thread Martin Carpentier
Hi again,

Just following up on the issue I previously described to see if someone can
confirm the issue and to see if there's a different(better) solution for it.
It's a problem that need to be solved before I can upgrade our application
to 1.9.x because it messes with our custom error messages and translations.

Thank you in advance for your help.

Martin Carpentier


On Thu, Sep 3, 2009 at 17:19, Martin Carpentier carpentier.mar...@gmail.com
 wrote:

 Hi,

 since the modification made to Zend_Validate_NotEmpty in ZF 1.9.0 (checking
 the value for valid types) radio buttons set with the required flags don't
 return the proper error message if submitted without any of its options
 checked.

 here's a simple example to recreate the problem:

 // in a TestController
 public function testAction()
 {
 $request = $this-getRequest();

 $form = new Zend_Form();
 $form-setAction('/test/test')
  -setName('formTest')
 ;

 $options = array(
 'no'= 'no',
 'yes'  = 'yes',
 );

 $form-addElement('Radio', 'testRadio', array(
 'label'= test ?,
 'required' = true,
 'multiOptions' = $options,
 ));

 $form-addElement('Submit', 'suivant', array(
 'required' = false,
 'ignore'   = true,
 'label'= 'submit test',
 ));

 if ($this-getRequest()-isPost()) {
 if ($form-isValid($request-getPost())) {
 Zend_Debug::dump($form);
 }
 }

 $this-view-form = $form;
 }

 Now, when submitting the form without selecting any option, we get the
 invalid message: Invalid type given, value should be float, string, or
 integer
 Before 1.9.0 we would get the correct and expected message: Value is
 required and can't be empty

 The problem is caused by the addition of those lines in
 Zend_Validate_NotEmpty:

 if (!is_string($value)  !is_int($value)  !is_float($value) 
 !is_bool($value)) {
 $this-_error(self::INVALID);
 return false;
 }

 With that check in place, a null $value would get flagged as being of an
 INVALID type
 A fix would be to check also that the value is not null like this:

 if (null !== $value  !is_string($value)  !is_int($value) 
 !is_float($value)  !is_bool($value)) {
 $this-_error(self::INVALID);
 return false;
 }

 Let me know if I should submit a bug report... or if I shouldn't be
 expecting that behavior anymore.

 Martin Carpentier