Home » HTML » HTML_QuickForm_Controller » Bug #6110
invalid return value from callback is not handled when validating page
Details
| Submitted | 2005-11-29 17:41 UTC |
|---|---|
| From | akutin at symcor dot com |
| Assigned | avb |
| Status | Closed |
| Package | HTML_QuickForm_Controller |
| PHP Version | Irrelevant |
| OS | Any |
| Roadmaps | (Not assigned) |
Comments
[2005-11-29 17:41 UTC] akutin at symcor dot com
Description:
------------
If you add a form rule to a page and your callback function returns something but expected values true or array, the page validates successfully.
Test script:
---------------
class XPage extends HTML_QuickForm_Page {
function buildForm() {
$this->addElement( 'text', 'Test', 'Test');
$this->addFormRule( array( $this, 'checkIT'));
// other elements
}
function checkIT( $fields) {
// returns invalid value 'false' if Test is empty
return strlen( $fields['Test']) != 0;
}
}
in jump, back, next, direct, submit actions
instead of
$data['valid'][$pageName] = $page->validate();
should be
if( PEAR::isError( $valid = $page->validate())) {
return $valid;
}
$data['valid'][$pageName] = $valid;
Expected result:
----------------
page does not validate, $controller->run() returns PEAR_Error.
Actual result:
--------------
the page is considered to be valid, $controller->run() returns true.