使用Ajax检查登录表单
Login form checked with Ajax
如果重复,很抱歉。我找了很多,但找不到解决问题的办法。
我使用内置登录的CMS系统,但我想在将登录详细信息发送到名为login.php的最终登录文件之前检查一下我有4个文件:
- login_form.html
- main.js
- check_login.php
- login.php-内置登录脚本,我对这个文件没有做任何操作
这是我的login_form.html
<div id="login-main" title="Close">
<div id="login-form" title="">
<span id="span_close" title="Close">x</span>
<form class="login-box" id="login-form-final" action="http://localhost/ubytovanie-slovakia.sk/account/login.php" method="post">
<p>Login</p>
<input type="hidden" name="username_fieldname" value="username" />
<input type="hidden" name="password_fieldname" value="password" />
<p id="login_err"></p>
<div class="login-line">
<input type="text" name="username" maxlength="30"/>
<label>Loginname</label>
</div>
<div class="login-line-pass">
<input type="password" name="password" maxlength="30"/>
<label>Password ( <a href="#" id="show_lost_pass">Forgot password?</a> )</label>
</div>
<div class="login-checkbox-line">
<input type="checkbox" name="remember" id="remember" value="true"/>
<label for="remember"><span></span>Remember</label>
</div>
<div class="login-submit-line">
<input type="submit" name="submit" id="login-submit" value="Login" />
</div>
</form>
</div>
</div>
这是我的JS代码:
$('#login-main').live("click",function(e){
var login_form = $('#login-main').find('*');
if(!($(e.target).is(login_form))||$(e.target).is('#login-form #span_close')){
$('#login-main').fadeOut();
}
if($(e.target).is('#login-form #login-submit')){
var login_name = $("#login-form .login-line input").val();
var login_pwd = $("#login-form .login-line-pass input").val();
$.post(WB_URL+"/include/ajax/check_login.php", { login_name: login_name, pwd: login_pwd }).done(function(error) {
switch(error){
case '0':
$("#login-form-final").submit(function(){
return true;
alert("submit ready");
});
break;
case '1':
$('#login_err').html('Loginname is empty!');
break;
case '2':
$('#login_err').html('Password is empty!');
break;
case '3':
$('#login_err').html('Wrong loginname or password!');
break;
case '4':
$('#login_err').html('Random error!');
break;
}
});
}
return false;
});
这是check_login.php
require_once('../../config.php');
require_once('../../framework/class.database.php');
if(isset($_POST['login_name'])&& isset($_POST['pwd'])){
if($_POST['login_name'] == ''){
$error = '1';
}else if($_POST['pwd'] == ''){
$error = '2';
}else{
$login_name = test_input($_POST['login_name']);
$pwd_md5 = md5($_POST['pwd']);
$q = "SELECT * FROM `".TABLE_PREFIX."users` WHERE `username`='".$login_name."' AND `password`='".$pwd_md5."'";
$res = $database->query($q);
if($res->numRows()<1){
$error = '3';
}else{
$error = '0';
}
}
}else{
$error = '4';
}
echo $error;
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
问题:
一切都很好,除非我输入了好的登录名和好的密码。表单未提交。它编写了一个文本为"submit ready"的警报,因此case:"0"可以正常工作,但.submit函数不能正常工作。有人能帮帮我吗?
我认为问题是,如果情况为0,你想提交表单,在这种情况下,你应该使用$("#login-form final").submit();但是您正在使用提交处理程序。它告诉引擎如果从某些地方提交表单该怎么办。我知道你不想要什么。
还有一件事是,您在返回后使用一个语句,该语句将永远不会执行。
相关文章:
- Jquery Modal表单登录与AJAX-ASP经典上的IE 9
- 有登录表单时无法提交表单
- 如何在提交按钮上定义登录表单的路径
- asp.net mvc中的javascript验证不适用于登录表单
- 将会话登录页存储在cookie中以进行表单解析(通过隐藏字段)
- javascript登录表单提交
- 如何制作登录表单以登录我的网络邮件
- 将随机数添加到登录表单的URL的目的是什么
- 流星 - 添加带有熨斗的路由后无法提交用户.路由器到登录和注册表单
- 单击按钮时切换html登录/注册表单
- 使用Ajax检查登录表单
- HTML文件到自动登录表单
- Android提交使用jquery的https登录表单
- 用用户上次登录时选择的内容填充html表单
- 使用AJAX提交登录表单并获得响应
- 使用自制的html表单注册/登录网站
- 当用户通过 iframe 表单登录时,如何将登录按钮更改为注销
- 在密码字段具有焦点后启用表单登录按钮
- 表单登录不与锚#工作
- BASH CURL脚本/自动Web表单登录