nette/forms

📝 Nette Forms:在PHP中生成、验证和处理安全表单。方便的API,完全可定制,服务器和客户端验证以及成熟的设计。

v3.2.4 2024-08-05 23:11 UTC

README

Downloads this Month Tests Coverage Status Latest Stable Version License

介绍

Nette\Forms极大地简化了创建和处理Web表单的过程。它真正能做什么呢?

  • 在客户端(JavaScript)和服务器端验证发送的数据
  • 提供高安全性
  • 多种渲染模式
  • 翻译,i18n

为什么要在简单的Web表单上设置框架?您不必担心编写两个验证脚本(客户端和服务器)等常规任务,您的代码将安全免受安全漏洞的侵害。

Nette框架非常注重安全性,因为表单是最常见的用户输入,Nette表单几乎坚不可摧。所有操作都是动态和透明的,无需手动设置。像跨站脚本(XSS)和跨站请求伪造(CSRF)这样的已知漏洞将被过滤,以及特殊控制字符。所有输入都会检查UTF-8的有效性。在验证时,所有多项选择、选择框等都会检查伪造的值。听起来不错?让我们试试。

文档可以在网站上找到。

支持我

你喜欢Nette Forms吗?你在期待新功能吗?

Buy me a coffee

谢谢!

安装

推荐的安装方法是使用Composer

composer require nette/forms

它需要PHP版本8.1,并支持PHP 8.1至8.4。

客户端支持可以使用npm或yarn安装

npm install nette-forms

用法

让我们创建一个简单的注册表单

use Nette\Forms\Form;

$form = new Form;

$form->addText('name', 'Name:');
$form->addPassword('password', 'Password:');
$form->addSubmit('send', 'Register');

echo $form; // renders the form

尽管我们提到了验证,但我们的表单还没有。让我们来修复它。我们需要用户告诉我们他们的名字,所以我们应该调用一个setRequired()方法,该方法的可选参数是显示错误消息,如果用户没有填写他们的名字

$form->addText('name', 'Name:')
	->setRequired('Please fill your name.');

尝试提交一个没有名字的表单 - 你会一直看到这条消息,直到你满足验证规则。我们剩下的只是设置JavaScript规则。幸运的是,这很简单。我们只需要链接到位于分发包中/client-side/formsnetteForms.js

<script src="netteForms.js"></script>

Nette框架将required类添加到所有必填元素。添加以下样式将把name输入框的标签变成红色。

<style>
.required label { color: maroon }
</style>

继续….