使用php导航到不同的html页面

时间:2017-02-03 08:55:40

标签: javascript php jquery html mysql

我正在编写PHP代码来验证mysql数据库中是否存在用户名和密码。当我点击登录页面(index.html)上的登录按钮时,会调用此php。我的PHP代码如下:

<?php
require_once 'dbconfig.php';

// Unescape the string values in the JSON array
$logindata = stripcslashes($_POST['pLogData']);

// Decode the JSON array
$logindata = json_decode($logindata,TRUE);

// now $tableData can be accessed like a PHP array
$user_email = $logindata['user'];
$user_password = $logindata['pass'];

//First lets get the username and password from the user
$query = $db_conn->prepare("SELECT * FROM tblUsers WHERE email=:user_email LIMIT 1");

$query->execute(array(':user_email'=>$user_email));

$userRow=$query->fetch(PDO::FETCH_ASSOC);

if($query->rowCount() > 0) {
    if(password_verify($upass, $userRow['pass'])) {
        $_SESSION['user_session'] = $userRow['userid'];
        if($userRow['userid'] == 1) {
            header("Location: adminPanel.html");
        } else {
            header("Location: main_dashboard.html");
        }
        // return true;
    } else {
        header("Location: index.html");
        // return false;
    }
}
?>

ajax调用代码是:

function login(username, passwd) {
   var loginData = {
       'user': username,
       'pass': passwd
    };

   loginData = $.toJSON(loginData);

   $.ajax({
       type: "POST",
       url: "loginValidate.php",
       data: "pLogData=" + loginData,
       success: function(msg) {
           console.log(msg);
           // return value stored in msg variable
       }
   });
}

除了在php中设置的导航没有发生外,它工作正常。我无法弄清楚错误在哪里。它必须导航到的整个html将被打印到控制台中。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:2)

通过ajax它将无法正常工作。返回文件名并在javascript中使用window.location=filename。或提交表格,如果 uncussessfull重定向到main_dashboard.html(the desired page)上的当前其他内容。

如果您返回文件名,则可以执行以下操作:

 success: function(filename) {
       window.location=filename;
   }

此删除标头位置,并使用echo filename,例如main_dashboard.html或其他。

答案 1 :(得分:0)

感谢您提出的宝贵建议。我设法解决了这个问题。工作代码如下:

if($query->rowCount() > 0) {
    $upass = $userRow['pass'];
    // if(password_verify($user_password, $userRow['pass'])) {
    if($user_password == $upass) {
        //echo "Check verified";
        $_SESSION['user_session'] = $userRow['userid'];

        if($userRow['userid'] == 1) {
            //header("Location: http://localhost:90/codebase-test/adminPanel.html");
            //return $userRow['userid'];
            $filename = "adminPanel.html";
            //return $filename;
        }
        else{
            $filename = "main_dashboard.html";
            //return $filename;
        }
        echo $filename;
       // return true;
    }
    else {
        echo "index.html";
        //echo $filename;
        //return false;
    }
}

我只发布了我改变的位。它现在正在运作。

修改 我也对ajax调用进行了一些小改动。代码如下:

$.ajax({
    type: "POST",
    url: "loginValidate.php",
    data: "pLogData=" + loginData,
    success: function(filename){
        window.location = filename;
    }
});