当创建表单时,html中的required和php中的check有什么区别?

rxztt3cl  于 2023-01-29  发布在  PHP
关注(0)|答案(4)|浏览(124)

我刚接触web开发,我不知道是用“required”检查用户是否填写了表单中的所有字段,还是稍后用php的empty()检查,然后让用户返回到首页,这两种方法的优缺点是什么?
我试过这两种方法,我能想到的唯一区别是使用HTML方式时的“请填写此字段”框。

um6iljoc

um6iljoc1#

html中的required设置告诉用户某个字段是必填的,并防止有人意外地提交一个空字段的表单。然而,人们仍然可以通过在浏览器之外创建一个请求来手动发送一个缺少字段的表单。PHP应该能够处理这个问题,尽管它可能像返回一个错误一样简单。
一般来说,您应该使用客户端验证(如required)来告诉用户要做什么,使用服务器端验证来防止绕过客户端的意外行为。

gopyfrb3

gopyfrb32#

这里的底线是,服务器端代码不能不能信任它从客户端接收到的 * 任何东西 *。
接收HTTP请求的Web应用程序无法知道该请求是通过用户界面发出的,在该用户界面中,数据在发送之前已应用了某些验证,还是有人修改了该用户界面以删除某些检查(如果您对开发人员工具稍有了解,这在浏览器中很容易),或者如果(例如)它来自某种机器人程序直接向您的服务器发出请求,或者有人只是打开PostMan并手动发出HTTP请求。
因此,就安全性和验证而言,如果您希望确保应用程序及其数据的安全性和有效性,您必须实现服务器端验证和安全过程。
客户端验证对于改善用户体验和应用程序的性能非常重要(这样用户就不必在收到关于他们试图提交的数据的有效性的反馈之前等待到服务器的往返),但是由于它很容易被绕过或禁用,因此不能仅依靠它来保护应用程序。

xmq68pz9

xmq68pz93#

从用户那里接收到的数据在服务器上需要进行有效性检查,所以必须在服务器上设置条件,使无效数据不进入数据库,还有,为了提高用户体验,除了服务器外,最好还有html格式的控件,这样甚至会使服务器不能总是检查和拒绝错误的请求,所以两者一起使用。

xbp102n0

xbp102n04#

这两个步骤对于制作一个安全、健壮的应用程序都是必要的,即前端和后端验证。
前端验证使用户不会意外地在显示的字段中填入不需要的数据,从而确保用户按预期使用应用程序。
后端验证确保输入的值始终是预期的值。不同之处在于,人们可以很容易地绕过前端验证,因此他们会滥用前端验证,在应用中插入错误数据,这可能会彻底破坏整个应用。

相关问题