假设我有一个文本输入,我不想空。我可以通过Js检查它并告诉用户一条消息。
就像我听到的那样,这不是很安全,我们也应该检查后端。我的问题是,如果我通过PhP检查字段是否为空,那么我从PhP告诉用户的消息不会与Js重叠吗?
答案 0 :(得分:1)
不,它不会互相重叠。您必须在后端验证它的原因是因为如果您禁用JavaScript,那么这些前端验证将无效。
我将使用jQuery Validation Plugin给你一个例子。
假设我们有以下HTML:
<form id="myform">
<input type="text" name="field1" />
<input type="text" name="field2" />
<input type="submit" />
<?php $error ? $error : '' ?>
</form>
以下jQuery:
$(document).ready(function () {
$('#myform').validate({ // initialize the plugin
rules: {
field1: {
required: true,
email: true
},
field2: {
required: true,
minlength: 5
}
}
});
});
以下PHP:
$field1 = $_POST['field1'];
$field2 = $_POST['field2'];
// Validate if fields are matching requirements
if (// Validation fails)
{
$error = 'Some fields are invalid';
}
这是一些非常糟糕的验证,但它就是一个例子。
因此,如果JavaScript未执行,PHP将返回$ error并显示错误消息。
如果您不知道$error ? $error : ''
的含义,则相当于:
if ($error) {
echo $error;
} else {
echo '';
}
希望这会对你有所帮助。