这是一个简单的问题。我有一个用 html 和 PHP 制作的注册表单。我希望它在一个人输入他的信息时更新。当一个人输入他的名字时,它使用 javascript 检查该框是否为空。如果它不为空,您可以继续,否则您会收到一条消息,说您必须在该字段中输入一些数据。
我的问题是,这是检查此人是否输入任何内容的安全方法吗?还是应该在服务器端使用 PHP,以便我可以确定不会将空信息输入数据库?
这是一个简单的问题。我有一个用 html 和 PHP 制作的注册表单。我希望它在一个人输入他的信息时更新。当一个人输入他的名字时,它使用 javascript 检查该框是否为空。如果它不为空,您可以继续,否则您会收到一条消息,说您必须在该字段中输入一些数据。
我的问题是,这是检查此人是否输入任何内容的安全方法吗?还是应该在服务器端使用 PHP,以便我可以确定不会将空信息输入数据库?
应该两者兼而有之,真的。服务器端验证是绝对必要的。从用户体验的角度来看,与服务器端验证相辅相成的客户端验证是一种很好的做法。
查看一些更流行的 PHP 框架以了解它们如何解决此问题是一个好主意。验证规则通常保存在模型中。例如,Kohana 3.3 中的用户身份验证如下所示:
<?php defined('SYSPATH') OR die('No direct access allowed.');
class Model_User extends Model_Auth_User {
public function rules() {
return array(
'username' => array(
array('not_empty'),
array('max_length', array(':value', 32)),
array(array($this, 'unique'), array('username', ':value')),
),
'password' => array(
array('not_empty'),
),
'email' => array(
array('not_empty'),
array('email'),
array(array($this, 'unique'), array('email', ':value')),
),
'first_name' => array(
array('not_empty'),
),
'last_name' => array(
array('not_empty'),
)
);
}
}
您永远不应该使用 javascript 作为脚本中的唯一检查。PHP 中至少需要在服务器端进行一项检查。Javascript 可以被操纵,因为它只是客户端,所以被跳过。