如何简化PHP中的表单处理?

前端之家收集整理的这篇文章主要介绍了如何简化PHP中的表单处理?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直是 PHP开发人员已经有一段时间了,但直到今天我还没有找到一种简单的处理方法(也就是规范化,清理,验证,填充和显示表单以及各自的字段错误).

我知道现在大多数PHP框架都使这项工作变得更容易,但不知何故我不想将我的所有代码移植到其中一个框架中,我不太明白如何在Django中实现表单验证(I知道,这是Python,但我真的很喜欢他们的方法),所以我觉得最好的方法是在这里发布我处理一个简单形式的方式,也许你们可以指出我最好的方向.

<?PHP

// sample controller
class _sample extends framework
{
    // sample action
    function contact()
    {
        if ($this->Is->Post() === true)
        {
            $errors = array();

            if ($this->Is->Set($_POST['name']) === false)
            {
                $errors['name'] = 'Please fill in your name.';
            }

            if (($this->Is->Email($_POST['email']) === false) || ($this->Is->Set($_POST['email']) === false))
            {
                $errors['email'] = 'Please fill in your email address.';
            }

            if (($this->Is->Phone($_POST['contact']) === false) && ($this->Is->Mobile($_POST['contact']) === false))
            {
                $errors['contact'] = 'Please fill in your phone (or cell phone) number.';
            }

            if ($this->Is->Set($_POST['message']) === false)
            {
                $errors['message'] = 'Please type a message';
            }

            // no errors,it's valid!
            if (empty($errors) === true)
            {
                // do stuff and redirect to "success" / "thank you" page
            }

            // load the form view,and let it display the errors
            // automatically prefill fields with $_POST values
            else
            {
                $this->View('contact_form',$errors);
            }
        }

        // load the form view for the first time
        else
        {
            $this->View('contact_form');
        }
    }
}

?>

正如你所看到的,这应该是一个简单的联系表格,但它需要我的生命来验证它,我一直在研究一些设计模式(观察者,工厂),但我不相信是否以及以何种方式我应该实施它们.

您可以为所有表单创建一个抽象基类,为fieldtypes创建一个类,以及一个静态类,用于验证各种类型的值(validateString,validateHtml,validateEmail,validateNumber,date等,只是方法..).定义表单,您将定义它将使用哪些字段对象,因此Form-> validate()方法调用Field-> validate()并返回过滤的值或错误消息.指定字段的默认错误消息,但在表单类中定义字段时,可以选择覆盖它.

哦,留下$_POST的东西.阅读帖子一次,将其传递一次到表单验证,然后处理过滤的字段值.

另一件事是根据您的需求和应用程序的体系结构,有多种方法可以实现表单验证,当您有各种应用程序设计方法时,很难制作一个通用的表单验证器.选择一种完成工作的方式并坚持下去(无论它是准备好的框架还是你自己的代码),或者你编写的任何超级形式验证,在后面的项目中都没有意义.

还有一个:像Django?好!因此,开始在Django中编写Python,您将真正改变思考如何完成工作的方式.

猜你在找的PHP相关文章