例如,我有一个注册功能,需要用户输入他们的“用户名”,“电子邮件地址”和“密码”。
我需要检查用户的所有参数,这不是null,而且,我需要检查它们的输入长度是否足以存储在db中。此外,我需要检查数据库中是否有任何重复的用户名和电子邮件。此外,我需要检查电子邮件地址是否是有效的电子邮件格式。
只创建一个足够简单的寄存器功能,我需要做很多检查。是否有任何简短的手检查一些基本的东西?例如,为了提高生产率,这不是空的。
答案 0 :(得分:5)
您需要检查所有内容,因为它无法自行检查。
PHP有很多有用的功能可以帮助...
isset()
isset()
以确保设置GET / POST变量。这些缺失通常只是由人们修修补补造成的。
if ( ! isset($_POST['email'])) {
$this->addError('You did not supply your email');
}
trim()
和empty()
trim()
和empty()
确保有人输入了除空白之外的其他文字。请注意,empty()
是一个构造,必须在变量上调用,不由trim()
直接返回的字符串(我的猜测是因为它想检查内存中的块,而不是堆栈上的值。)
$email = trim($_POST['email']);
if (empty($email)) {
$this->addError('You didn\'t type any non whitespace characters');
}
当然,请使用最终用户会理解的更好的错误。
这也经常使用,你可以做一个实用程序功能来做到这一点。
filter_var()
您可以使用filter_var()
来验证内容,例如验证电子邮件,IP和整数。
if ( ! filter_var($email, FILTER_VALIDATE_EMAIL)) {
$this->addError('You did not enter a valid email');
}
Regular Expressions可以自行完成,例如检查有效的字符,模式和长度。
if ( ! preg_match('/^\w{4,12}\z/', $username)) {
$this->addError('You did not enter a valid email');
}