首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我尝试在登录脚本中使用ajax,但是页面不会重定向。

我尝试在登录脚本中使用ajax,但是页面不会重定向。
EN

Stack Overflow用户
提问于 2015-04-07 12:33:34
回答 5查看 110关注 0票数 0

我的登录脚本有问题,我实现了ajax,所以如果有一个无效的登录,消息将显示在同一个页面上,但是当用户输入正确的信息时,我会有一些问题,我必须刷新页面,然后它说欢迎用户,但是当用户输入错误信息时,它会立即显示无效的登录消息。

index.php

代码语言:javascript
复制
<?php
if (!isset($_SESSION['uid'])) {
    echo "<p>Welcome to our homepage. you can be part of our awesome community by signing up.</p>";
}else{
    echo "<p>You are now logged in and able to post comments in our site</p>";
}
?>
<?php
if (!isset($_SESSION['uid'])) {
    echo "<form action='login_parse.php' method='post' style='display: inline-block'>
    Username: <input type='text' name='username' id='username' />
    Password: <input type='password' name='password' id='password' />
    <input id='submit-button' type = 'button' value='login' id='submit' />";
    echo "</form>";
    echo "<form action='signup.php' method='post' style='display: inline-block'>";
    echo "&nbsp";
    echo "<input type='submit' name='submit' value='Signup'>";
    echo "</form>";

} else {
    echo "<form style='display: inline-block'>";
    echo "<p>You are logged in as ".$_SESSION['username']."";
    echo "</form>";
    echo "<form action='logout_parse.php' method='post' style='display: inline-block'>";
    echo "&nbsp";
    echo "<input type='submit' value='logout'>";
    echo "</form>";
    echo "<form action='profile.php' method='post' style='display: inline-block'>";
    echo "&nbsp";
    echo "<input type='submit' value='profile'>";
    echo "</form>";
}
?>
<script src="ajax.js"></script>
<script>


var HTTP = loadXMLDoc();

var submitEvent = document.getElementById("submit-button").onclick = function(){

    hello2(HTTP);
};

</script>

ajax.js

代码语言:javascript
复制
function hello2(){

    var username = encodeURIComponent(document.getElementById('username').value);
    var password = encodeURIComponent(document.getElementById('password').value);

    var url = "login.php?username="+username+"&password="+password;

    HTTP.onreadystatechange=function()
    {
        if (HTTP.readyState==4 && HTTP.status==200)
        {
            document.getElementById("ack1").innerHTML=HTTP.responseText;
        }
    };
    HTTP.open("POST", url ,true);
    HTTP.send();
}

login.php

代码语言:javascript
复制
<?php

session_start();
include_once("connect.php");

if (isset($_REQUEST['username'])) {
    $username = mysql_real_escape_string( $_GET["username"]);
    $password = mysql_real_escape_string( md5 ($_GET["password"]));
    $sql = "SELECT * FROM users WHERE username='".$username."' AND password='".$password."' LIMIT 1";
    $res = mysql_query($sql) or die(mysql_error());

    if(mysql_num_rows($res) == 1) {
        $row = mysql_fetch_assoc($res);
        $_SESSION['uid'] = $row['id'];
        $_SESSION['username'] = $row['username'];
            header("location: index.php");
        exit();
    } else{
        echo "INVALID login information.";
        exit();
    }
}

?>

为了解决这个问题,我尝试使用login.php中的header函数刷新页面,但是仍然没有发生任何事情,我必须手动刷新页面,然后加载欢迎用户。我是不是做错什么了。

EN

Stack Overflow用户

发布于 2015-04-07 12:37:11

使用ajax调用文件时,不能使用header /服务器端重定向。

相反,如果登录处理正确,则必须检查ajax调用的成功函数中的结果,并使用javascript重定向。

票数 3
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29491709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档