登录成功后如何重定向到服务器上没有的其他页面

时间:2015-10-18 15:24:53

标签: javascript php jquery ajax html5

我的手机上有一个HTML5应用程序。当我输入正确的用户名和密码时,它应该转到外部服务器,登录到该数据库,检查凭据并在凭证正确时将我重定向到手机上的另一个页面(主页)。

我能够访问服务器并检查凭据,但如何重定向回应用程序中的主页?

做了一些阅读并发现ajax是一个可行的选择。但即便如此,我也不完全确定如何进行重定向。我也写了ajax部分并附在下面。请建议我如何调整它来工作。

在您输入登录详细信息的应用的第一页:

    <html>
        <head>
            <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css" />
            <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
            <script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
            <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
            <script src="scripts.js"></script>
            <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" /> 
        </head>
            <body>
                <div data-role="page" id="loginForm">
                    <form id="form1" name="form1" method="POST" action="http://www.examplewebsite.com/login.php">
                        <input type="text" name="user" id="user" placeholder="Username"/>

                        <input type="password" name="pass" id="pass" placeholder="Password" />

                        <input type="submit" name="submit" value="Login" />
                    </form>
                </div>
                <div data-role="page" id="home">
                    <h1>Logged In</h1>
                </div>
            </body>
        </html>

要检查的脚本登录。这个php文件位于服务器端。

    //DB Log in credentials
    $hostName = 'localhost';
    $dbUser = 'fakeuser';
    $dbPass = 'fakepass';
    $dbName = 'fakedb';
    $userTable = "faketable";

    //Connect to DB
    $conn = mysql_connect($hostName, $dbUser, $dbPass) or die("not connecting");
    $dbSelect = mysql_select_db($dbName) or die("no db found");

    //Obtain input username and password from the client
    $username = $_POST["user"];
    $password = $_POST["pass"];

    //Check for MySql Injections
    if(ctype_alnum($username) && ctype_alnum($password)){
        $query1 = mysql_query("SELECT * FROM $userTable WHERE username='$username'");
        //query will return 1 if the username exists in the database
        $numrows = mysql_num_rows($query1);

        if($numrows == 1){
            //checking if the password matches the username now
            $query2 = "SELECT password FROM $userTable WHERE username='$username'";
            $result2 = mysql_query($query2);        
            $row = mysql_fetch_array($result2, MYSQL_ASSOC);
            $pass = $row['password'];

            if($password == $pass){
                //If successful, redirect to the #home page
                //anything I can do here to redirect back to #home on my app?
            }
            else
                echo "Password incorrect";
        }
        else
            echo "username incorrect" . $numrows;
    }
    else{
        echo "Not alpha Numeric Input!!";
    }

尝试使用Ajax部分

var isLogged = false;
/**
 * Method used to log into the application
 */
$(document).on("pageinit", "#loginForm", function () {
    $("#form1").on("submit", function (event) {
        event.preventDefault();
        $.ajax({
            type: "GET",
            url: "http://www.examplewebsite.com/login.php",
            data: $("#form1").serialize(),
            success: function (data) {
                console.log(data);
                if (data.loggedIn) {
                    isLogged = true;
                    $.mobile.changePage("#home");
                } else {
                    alert("You entered the wrong username or password. Please try again.");
                }
            }
        });
    });
});

2 个答案:

答案 0 :(得分:0)

header("Location: thefile.php");

thefile.php替换为您要重定向的文件。!

答案 1 :(得分:-2)

您可以使用“Location:”标题,也可以使用“META REFRESH”标记,其有效期为0.