JQuery验证错误或用户错误?
Link to the site in question。JQuery验证错误或用户错误?
你可以看看源了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",
}
},
....
所以POST到form_check_user.php用户名= 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;
?>
功能的工作,因为它应该,我尝试使用用户名root或任何有效的Linux应用r并且它检测到它的无效...
如果在“...”中输入“root”,则表示该问题无效......并且您仍选中下一个窗体,然后显示[object Object]已经在使用
编辑:也许应该包括这一点,因为该消息似乎是问题的一部分:
messages: {
UserID: {
required: "Enter a username",
minlength: jQuery.format("Enter at least {0} characters"),
remote: jQuery.format("{0} is already in use")
},
更新:8/20
我已确认这是一个错误在调试后的验证插件中。操作(虽然我迷路发生错误,我知道它有没有关系我的反应。)
我想我找到的bug;
确认有: message = message.call(this,rule.parameters,element);
这应该是:
消息= message.call(此,message.parameters,元件);
该修补程序之后,似乎一切都OK。我是新来的JQuery和调试JavaScript,所以它可能需要进行更彻底的测试,但我认为这是问题。
我已经通过电子邮件发送此修复程序(我注意到他的追踪和jQuery开发论坛上与他的错误多个问题)
我没有得到任何错误,当我输入“根”或在用户名字段其他任何用户名(在FF 3.6.8)。我确实收到一条警告,声称The 'charCode' property of a keyup event should not be used. The value is meaningless
,虽然公平,但在输入此答案时我收到了相同的警告。
你可以有所简化代码,消除foreach()
。由于file()
已经将文件的内容读入数组,因此您可以简单地使用preg_grep()
代替。如果任何阵列行模式相匹配,他们会被退回,所以......
$htpasswd_array = file('/etc/passwd');
$matches = preg_grep("/^{$User}:/", $htpasswd_array);
if (count($matches) == 0) {
echo "false"; // no matches
} else if (count($matches) == 1) {
echo "true"; // username in use
} else {
echo "file_not_found"; // in true TDWTF fashion, in case there's multiple accounts
}
评论跟帖随访:
好吧,我现在得到了错误了。是的,你的编辑是有道理的。我猜jquery和/或验证器插件使用解码的JSON响应来填充该消息,这将是一个标准的对象。既然你没有返回有问题的用户名作为响应的一部分,这是没有用的输出对象本身,因为它会只包含true
或false
。必须以某种方式引用输入字段的内容并输出,因为它包含错误的用户名。
我3.6.6检查了插件的开发,它有错误。你必须输入“根”......让它说它被采取......点击它......回到表格中,然后从表格中移开。 – ParoX 2010-08-18 05:06:55