我一直在使用以下代码来验证我的用户输入 $_POST:
if(isset($_POST['name']) && !empty($_POST['name'])) {
$n=$_POST['name'];
}
else {
$errors[] = "Please give a name";
}
此代码检查是否实际设置了"name",这是显而易见的,清晰且需要的。其次,它检查用户是否在文本字段中键入了一些内容来为名称提供值。但是,如果用户给出 SPACE " " 作为输入,它接受它,因为它不是空的,它有 SPACE。
我找到了一种正确的方法:
if(isset($_POST['name'])) {
$n = trim($_POST['name']);
if(empty($n)) {
$errors[] = "Please give a name";
}
}
else {
$errors[] = "Please give a name";
}
但是在这里我重复相同的错误消息两次,那么如何优化它呢?
if(isset($_POST['name']) && trim($_POST['name']) !== "") {
$n=$_POST['name'];
}
else {
$errors[] = "Please give a name";
}
删除空的,然后进行修剪。
老实说,除非你打开了通知,否则你甚至不需要isset:
if(trim($_POST['name']) !== "") {
如果你不需要修剪的字符串,你可以将修剪本身移动到 if 子句:
if(isset($_POST['name']) && (trim($_POST['name']) != '') ) {
$n=$_POST['name'];
}
else {
$errors[] = "Please give a name";
}
如果您进一步需要它,您可以在检查之前修改输入:
$_POST['name'] = trim( $_POST['name'] );
if(isset($_POST['name']) && !empty($_POST['name'])) {
$n=$_POST['name'];
}
else {
$errors[] = "Please give a name";
}
像这样尝试
if(trim(isset($_POST['name']))) {
$n = trim($_POST['name']);
}
else {
$errors[] = "Please give a name";
}
试试
if(isset($_POST['name'])) {
$n = trim($_POST['name']);
}
if(empty($n) or !isset($_POST['name'])) {
$errors[] = "Please give a name";
}
只需将上面的代码更改为此
if(trim(isset($_POST['name'])))
{
$n = trim($_POST['name']);
}
else
{
$errors[] = "Please give a name";
}
尝试使用这个
if(isset($_POST['name']) && trim($_POST['name']) != false) {
$n=$_POST['name'];
}
else {
$errors[] = "Please give a name";
}
最后,
我开始使用以下代码。它更好,因为在这里我甚至可以控制最少的字符数。
if(isset($_POST['name']) && strlen(trim($_POST['name'])) > 1) {
$block->name = trim($_POST['name']);
}
else {
$errors[] = "Please give a name. It should be at least two characters";
}