Php zend表单验证

Php zend表单验证,php,validation,zend-framework,zend-form,Php,Validation,Zend Framework,Zend Form,我想知道Zend_表单如何验证输入,我的意思是它如何知道要验证哪些输入字段。我查看了php globals($\u POST,$\u GET),但没有看到任何设置为标识符(例如)以了解如何进行验证的内容。有人能给我推荐一些这方面的指南吗?看看,这是一个关于如何开始在Zend中处理表单的非常好的例子 验证文本输入如下所示: $username = new Zend_Form_Element_Text('username'); // Passing a Zend_Validate_* object:

我想知道Zend_表单如何验证输入,我的意思是它如何知道要验证哪些输入字段。我查看了php globals($\u POST,$\u GET),但没有看到任何设置为标识符(例如)以了解如何进行验证的内容。有人能给我推荐一些这方面的指南吗?

看看,这是一个关于如何开始在Zend中处理表单的非常好的例子

验证文本输入如下所示:

$username = new Zend_Form_Element_Text('username');
// Passing a Zend_Validate_* object:
$username->addValidator(new Zend_Validate_Alnum());
// Passing a validator name:
$username->addValidator('alnum');

好的,最好的办法是看看:


简而言之,
Zend_Form
将迭代表单中所有配置的元素,并将它们与传递给它的数组中的值进行比较。如果存在匹配项,它将根据配置的验证器验证单个值。

因此,您可以创建实际的表单,然后检查是否存在post | get data。您可以在这里查看有效表格。您需要将$\u POST或$\u GET data传递给isValid()函数。例如:

if ($request->isPost() && $form->isValid($request->getPost())) {
isValid()是Zend_Form类的函数。表单为每个元素运行所有验证(只要您在第一次验证失败时未设置为停止),然后也为子表单运行所有验证。

或者您可以使用:

    $username_stringlength_validate = new Zend_Validate_StringLength(6, 20); 
    $username = new Zend_Form_Element_Text('username');
    $username->setLabel('Username: ')
             ->addFilters(array('StringTrim', 'HtmlEntities'))
             ->setAttrib('minlength', '6')
             ->setAttrib('class', 'required')
             ->removeDecorator('label')
             ->removeDecorator('HtmlTag')
             ->removeDecorator('DtDdWrapper')
             ->setDecorators(array(array('ViewHelper'), array('Errors')))
             ->addValidator($username_stringlength_validate);

我知道如何使用。我不明白Zend是如何完成这项任务的。当我提交表单时,它如何知道要验证的输入字段?@aykut请仔细阅读链接教程。这里有一个叫做检查表单是否有效的部分。通常你会将一组值传递给$form->isValid(),例如$form->isValid($\u POST)。请接受其中一个给定的答案,或者指出为什么没有一个答案帮助你回答问题,这样人们就有机会更新答案。谢谢
    $username_stringlength_validate = new Zend_Validate_StringLength(6, 20); 
    $username = new Zend_Form_Element_Text('username');
    $username->setLabel('Username: ')
             ->addFilters(array('StringTrim', 'HtmlEntities'))
             ->setAttrib('minlength', '6')
             ->setAttrib('class', 'required')
             ->removeDecorator('label')
             ->removeDecorator('HtmlTag')
             ->removeDecorator('DtDdWrapper')
             ->setDecorators(array(array('ViewHelper'), array('Errors')))
             ->addValidator($username_stringlength_validate);