Link to the site in question .
您可以在 JQuery 或此处的主要部分查看 javascript 的源代码:
// validate signup form on keyup and submit
var validator = $("#Register").validate({
rules: {
UserID: {
required: true,
minlength: 2,
remote: {
url: "form_check_user.php",
type: "post",
}
},
....
因此它发布到 form_check_user.php UserID=ValueFromForm
这是 form_check_user.php 代码:
<?
if ($_POST['UserID']) {
$User = strtolower($_POST['UserID']);
$htpasswd_array = file("/etc/passwd");
$pattern = "/^$User:/";
foreach ($htpasswd_array as $key => $value) {
if (preg_match($pattern, $value)) {
echo "false";
exit;
}
}
echo "true";
exit;
}
echo "false";
exit;
?>
该函数正常工作,我尝试使用 UserID 作为 root 或任何有效的 linux 用户,它检测到它无效...
如果您在...中输入“root”,问题就来了...它说它无效...您仍然切换到下一个表单,然后它显示[object Object] is already in use
编辑:可能应该包括这个,因为消息似乎是问题的一部分:
messages: {
UserID: {
required: "Enter a username",
minlength: jQuery.format("Enter at least {0} characters"),
remote: jQuery.format("{0} is already in use")
},
更新:8/20
经过调试,我已经确认这是验证插件中的错误。 (虽然我在错误发生的地方迷路了,但我知道这与我的 react 无关。)
最佳答案
我想我发现了错误;
验证有: message = message.call(this, rule.parameters, element);
这应该是:
message = message.call(this, message.parameters, element);
修复之后,一切似乎都正常了。我是 JQuery 和调试 javascript 的新手,因此可能需要对其进行更彻底的测试,但我认为这就是问题所在。
我已经通过电子邮件向插件开发人员发送了此修复程序(我注意到他的跟踪器和 JQuery 论坛中的错误存在多个问题)
关于php - JQuery 验证错误或用户错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3508262/