加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Ajax / jquery登录表单失败

发布时间:2020-12-13 16:44:40 所属栏目:PHP教程 来源:网络整理
导读:我已经看过这1000次了.我不明白为什么它不起作用. 这是一个简单的ajax登录表单.即使凭据正确,它也会返回false. (我通过直接发布测试了ajax_login.php) Ajax功能: $(document).ready(function() {$("#submit_login").click(function() {var username = $("#u
我已经看过这1000次了.我不明白为什么它不起作用.

这是一个简单的ajax登录表单.即使凭据正确,它也会返回false. (我通过直接发布测试了ajax_login.php)

Ajax功能:

$(document).ready(function() {
$("#submit_login").click(function() {


var username = $("#username").val();
var password = $("#password").val();

    $.ajax({

        type: "POST",url: "scripts/ajax_login.php",data: "username=" + username + "&password=" + password,success: function(result) {
            if(result == '0')
            {
                $(document.location = 'index.php?    page=profile&user=' + username);
            }
            else
            {
                $("#login_error").show("fast");
            }
        }
    });         
    return false;
});
});

ajax_login.php

session_start();
require('../conf/config.php');

if($_POST)
{

$u = mysql_real_escape_string($_REQUEST['username']);
$p = md5(mysql_real_escape_string($_REQUEST['password']));

$con = mysql_connect($mysql_server,$mysql_user,$mysql_password);
$db = mysql_select_db($mysql_db);

$query = mysql_query("SELECT * FROM users WHERE username = '$u' AND password = '$p'");

if(mysql_num_rows($query) > 0)
{
    $sid = session_id();
    $query = "UPDATE users SET sid='$sid' WHERE username='$u'";
    $result = mysql_query($query);

    if($result)
    {
        $_SESSION['loggedin'] = $u;
        echo '0';
    }
}
}

形成:

<div class="login_form">
<form action="scripts/ajax_login.php" method="POST">
Login<br /><br />
Username: <br />
<input type="text" name="username" id="username" /> <br />
Password: <br />
<input type="password" name="password" id="password" />
</div>
<input type="checkbox" name="remember" id="rem" value="checked"/><label for="rem">Stay logged in?</label><br />
<?php $formKey->outputKey(); ?>
    <input type="submit" value="Login!" name="submit" id="submit_login" />
   </form>

解决方法

它总是返回false,因为$.ajax()(和其他jQuery ajax方法一样)默认情况下是异步操作的.您需要在回调中执行所有事件处理(例如,您的成功回调).

另外,我建议不要这样做:if(result ==’0′).相反,使用===.

理想情况下,您应该返回JSON,或者至少返回不是true,false,1等等.当涉及到JavaScript的布尔处理时,这四个值(和其他值)可能会很容易混淆.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读