登录表单 - 无法使用php登录

时间:2012-12-23 07:35:46

标签: php mysql login-script

我正在尝试使用以下代码编写登录脚本:

Jquery代码段

<script type="text/javascript">
$(function(){

$('div#login-button').click(function(){
            var email = $("#login_email").val();
            var password = $("#login_password").val();
            $.post("functions/login.php?email="+email+"&password="+password, {
            }, function(response){
                if($(response).html() == "correct")
                    window.location.href = "home.php";
                else window.alert($(response).html());
            });
});

});
</script>

HTML代码

<div id="login-type-1">
            E-mail:<input type="text" id="login_email" name="email" value="Type your Email ID" class="input" maxlength="100"/><br />
            Password:<input type="password" id="login_password" name="password" value="password" class="input" maxlength="30"/>
        <a href="#"><div id="login-button"><span>Log in</span></div></a>
</div>

功能/ login.php中

<?php
    require_once('db.php');

        session_start();

        $email = $_REQUEST['email'];
        $password = $_REQUEST['password'];

        if(!$email || $email == "Type your Email ID")
            echo "<p>Please input your email id.</p>";
        if(!$password)
            echo "<p>Please input your password.</p>";

        if($email && $password && $email != "Type your Email ID"){
            $check = mysql_query("SELECT u_id, u_fname, u_lname, u_email FROM user_data WHERE u_password = '".md5($password)."' AND u_email = '".$email."'");
            $result = mysql_num_rows($check);
            if ($result == 1){

                $row = mysql_fetch_assoc($check);

                $_SESSION['u_id'] = $row['u_id'];
                $_SESSION['u_fname'] = $row['u_fname'];
                $_SESSION['u_lname'] = $row['u_lname'];
                $_SESSION['u_email'] = $row['u_email'];
                $_SESSION['u_name'] = $row['u_fname']." ".$row['u_lname'];

                echo "<p>correct</p>";

            }
            else {
                echo "<p>Invalid Authentication</p>";
            }
        }
?>

数据库连接:

class db {
    public static $hostname_adminconn = "localhost";
    public static $database_adminconn = "masterdb";
    public static $username_adminconn = "root";
    public static $password_adminconn = "qwerty";
    public static $adminconn;

    public static function dbDb() {
        return db::$database_adminconn;
    }
    public static function dbConn() {
        return db::$adminconn;
    }
}
db::$adminconn = mysql_connect(db::$hostname_adminconn, db::$username_adminconn, db::$password_adminconn) or trigger_error(mysql_error(),E_USER_ERROR);

但是,我无法登录。有人可以帮我调试吗?

1 个答案:

答案 0 :(得分:7)

您的PHP返回此信息:

echo "<p>correct</p>";

但是JavaScript检查了这个:

if($(response).html() == "correct")

这种比较不起作用。

话虽如此,您应该返回更合适的响应类型,例如JSON

header('Content-Type: application/json');

echo json_encode(array(
    'res' => 'ok',
));

在您的JavaScript中:

if (response.res === 'ok') {