1

我是使用 php 的 jquery mobile 的新手。提交后,带有提交按钮的登录表单有一点问题,它转到“home.php”页面,但 url 也没有转到 home.php。(仍然是 /login.php)。我怎样才能解决这个问题?

<?php

include 'core/config.init.php';     //include all sql connect,function etc.
if(logged_in() === true)
{
    header('Location: home.php');   
}

if(empty($_POST) === false)
{

    $check_user = true;
    $check_pass = true;
    $username = $_POST['username'];
    $password = $_POST['password']; 

    if(empty($username) === true || empty($password) === true)
    {
        $error = 'You need to enter username and password!';
        $check_user = false;
        $check_pass = false;
    }
    else if(user_exists($username) === false )
    {
        $check_user = false;
    }

    $login = login($username, $password);

    if($login === false)
    {
        $error = 'Username/password is incorrect!'; 
        $check_pass = false;
    }
    else
    {
        setcookie("username", "$username", time()+1720000); 
        header('Location: home.php');
    }
}
//print_r($error);

?>

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1" />

    <link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/jquery.mobile/1.1.1/jquery.mobile-1.1.1.min.css" />
    <link rel="stylesheet" href="core/css/login.css" />

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <script src="https://ajax.aspnetcdn.com/ajax/jquery.mobile/1.1.1/jquery.mobile-1.1.1.min.js"></script> 
    <script type="text/javascript" src="core/jquery/jquery-latest.js"></script>  
    <script src="core/jquery/login.js"></script>
</head>
<body>
        <div data-role="page" data-theme="a">
            <div id = "header-text-area">
                <span id= "header-text">Login</span>
            </div>
            <div data-role="content" style="padding: 15px">
                <form action="login.php" method="POST">
                    <div data-role="fieldcontain" class="ui-hide-label">
                        <input name="username" id="textinput1" placeholder="Username" value="test" type="text" />
                    </div>
                    <div data-role="fieldcontain" class="ui-hide-label">
                        <input name="password" id="textinput2" placeholder="Password" value="test" type="password" />
                    </div>
                    <div id = "submit-area">
                        <input type="submit" data-theme="b" value="Submit" id = "sub1"/>
                    </div>
                </form>

            </div>
        </div>
</body>

4

2 回答 2

3

您需要添加data-ajax="false"到表单标签。这将在不使用 jquery mobile 内置的 Ajax 导航的情况下将表单提交到您的操作 URL。此外,您应该在表单操作中使用完整的 URL。(jquery mobile 有时会感到困惑)

于 2012-08-19T16:14:24.750 回答
-1

每次调用后

header("Location: home.php");

你需要添加这样的一行:

exit();

这应该可以解决您的问题。

于 2012-08-19T16:10:45.240 回答