stefangabos/zebra_form

A jQuery 扩展的 PHP 库,用于创建和验证 HTML 表单

2.9.8 2016-05-18 14:53 UTC

This package is auto-updated.

Last update: 2024-09-11 22:38:21 UTC


README

A jQuery 扩展的 PHP 库,用于创建和验证 HTML 表单

Packagist 统计

Latest Stable Version Total Downloads Monthly Downloads Daily Downloads License

Zebra_Form 是一个 PHP 库,极大地简化了创建和验证 HTML 表单的过程。它的面向对象结构促进了 HTML 表单的快速开发,并鼓励开发者编写干净、易于维护的代码。它通过提供强大的内置客户端和服务器端验证,使开发者从编写验证表单的重复性工作中解放出来。

Zebra_Form 集成了 跨站脚本 (XSS) 防护机制,可自动从提交的数据中删除潜在的恶意代码,并具有针对 跨站请求伪造 (CSRF) 攻击的保护。它还可以通过使用 诱饵 自动防止自动垃圾邮件帖子,而不依赖于 CAPTCHA。

表单布局可以自动生成或手动生成 - 使用模板。当自动生成时,生成的输出验证为 HTML 4.01 Strict、XHTML 1.0 Strict 或 HTML5,并在所有主要浏览器(如 Firefox、Chrome、Opera、Safari 和 Internet Explorer 6+)中具有相同的视觉和感觉。

它提供了在 HTML 表单中预期的所有控件,此外还包括日期/时间选择器、CAPTCHA 和高级 AJAX 类型的文件上传控件 - 请参阅 文档 了解开箱即用的验证规则。

客户端验证使用 jQuery 1.5.2+ 完成

Zebra_Form 的代码注释丰富,在 PHP 的错误报告级别设置为 E_ALL 时不会产生警告/错误/通知

特性

  • 默认提供对跨站脚本 (XSS) 和跨站请求伪造 (CSRF) 攻击的保护,自动防止使用“诱饵”技术的自动垃圾邮件帖子(也可以使用 CAPTCHA 提供更强大的保护)
  • 提供服务器端和客户端验证(客户端验证使用 jQuery 1.5.2+ 完成)并具有大量开箱即用的预定义规则;可以轻松添加自定义验证规则(包括基于 AJAX 的)
  • 表单布局可以自动生成或手动生成,使用模板
  • 生成的输出验证为 HTML 4.01 Strict、XHTML 1.0 Strict 或 HTML5
  • 在所有主要浏览器(如 Firefox、Chrome、Opera、Safari 和 Internet Explorer 6+)中运行
  • 代码注释丰富,在 PHP 的错误报告级别设置为 E_ALL 时不会产生警告/错误/通知
  • 具有全面的文档

要求

PHP 5.0.2+(最好使用 PHP 5.3.0 并使用“fileinfo”扩展编译,以进行更安全的文件上传 - 在版本 2.7.3 的变更日志中了解更多信息)

jQuery 1.5.2+

如何使用

HTML
<!-- must be in strict mode! -->
<!DOCTYPE html>

<html>

    <head>

        <title>Zebra_Form Example</title>

        <meta charset="utf-8">

        <!-- load Zebra_Form's stylesheet file -->
        <link rel="stylesheet" href="path/to/zebra_form.css">

    </head>

    <body>

        <!-- the PHP code below goes here -->

        <!-- load jQuery -->
        <script src="path/to/jquery.js"></script>

        <!-- load Zebra_Form's JavaScript file -->
        <script src="path/to/zebra_form.js"></script>

    </body>

</html>
PHP
// include the Zebra_Form class
require 'path/to/Zebra_Form.php';

// instantiate a Zebra_Form object
$form = new Zebra_Form('form');

// the label for the "email" field
$form->add('label', 'label_email', 'email', 'Email');

// add the "email" field
$obj = $form->add('text', 'email', '', array('autocomplete' => 'off'));

// set rules
$obj->set_rule(array(

    // error messages will be sent to a variable called "error", usable in custom templates
    'required'  =>  array('error', 'Email is required!'),
    'email'     =>  array('error', 'Email address seems to be invalid!'),

));

// "password"
$form->add('label', 'label_password', 'password', 'Password');

$obj = $form->add('password', 'password', '', array('autocomplete' => 'off'));

$obj->set_rule(array(

    'required'  => array('error', 'Password is required!'),
    'length'    => array(6, 10, 'error', 'The password must have between 6 and 10 characters'),

));

// "remember me"
$form->add('checkbox', 'remember_me', 'yes');

$form->add('label', 'label_remember_me_yes', 'remember_me_yes', 'Remember me');

// "submit"
$form->add('submit', 'btnsubmit', 'Submit');

// validate the form
if ($form->validate()) {

    // do stuff here

}

// auto generate output, labels above form elements
$form->render();

有关演示和更多信息,请访问 项目主页