0

ログインに成功した後 (つまり、ユーザーがユーザー名とパスワードを入力した後にログイン ボタンをクリックしたとき)、ユーザー タイプに基づいて、ユーザーを特定のページに送りたいと考えています。以下は私のコードです。(ここで、usertype が「employee」の場合、「ログイン」ボタンをクリックすると、「data-update.php」ページに移動します。)

これは、index.php ページのコードです。

// This file is the home page.

// Require the configuration before any PHP code as the configuration controls error reporting:
require ('config.inc.php');

// The config file also starts the session.

// Require the database connection:
require (MYSQL);

// If it's a POST request, handle the login attempt:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    include ('login.inc.php');
}

/* PAGE CONTENT STARTS HERE! */
?>
<!DOCTYPE html>
<html lang="en">
<head>
...

login.inc.php ページのコードは次のとおりです。

<?php 

// This is the login page for the site.
// It's included by index.php, which receives the login form data.

// Array for recording errors:
$login_errors = array();

// Validate the username:


// Validate the password:


if (empty($login_errors)) { // OK to proceed!

// Query the database:
$q = "SELECT id, type FROM users WHERE (username='$u' AND pass='"  .  get_password_hash($p) .  "')";        
$r = mysqli_query ($dbc, $q);

if (mysqli_num_rows($r) == 1) { // A match was made.

    // Get the data:
    $row = mysqli_fetch_array ($r, MYSQLI_NUM); 

    // Store the data in a session:
    $_SESSION['user_id'] = $row[0];
    $_SESSION['username'] = $u;     

    if ($row[1] == 'employee') {
        reset_sms_update_session();
        header("Location: http://".BASE_URL."data-update.php");                         
        exit;
    }
    elseif ($row[1] == 'client'){
        header("Location: http://".BASE_URL."About.html");
        exit;
    }

...

そして、これは「data-update.php」ページの部分的なコードです:

 // Start the session:
 session_start();

function redirect_invalid_user($check = 'user_id', $destination = 'index.php', $protocol = 'http://') {

// Check for the session item:
if (!isset($_SESSION[$check])) {
    $url = $protocol . BASE_URL . $destination; // Define the URL.
    header("Location: $url");
    exit(); // Quit the script.
}

} // End of redirect_invalid_user() function.

//Redirect to index.php if user not logged in
redirect_invalid_user( );

/* PAGE CONTENT STARTS HERE! */
?>
<!DOCTYPE html>

...

問題は、Google Chrome でユーザーがログイン ボタンをクリックすると、最初に index.php ページ (リダイレクトが発生する場所) に移動し、次にログイン ボタンをもう一度クリックして「data-update.php」に移動する必要があることです。 」ページ。Google Chrome でこの問題が発生するのはなぜですか? (参考までに、ローカル PC の XAMP テスト環境では発生しません。)

これは Firefox や IE8 では発生しません (つまり、ユーザーが初めてログイン ボタンをクリックすると、"data-update.php" が表示されます)。

助けてください。

4

1 に答える 1

0

Web サーバーの CPanel から への永続的なリダイレクトを設定することで、これを解決しましhttp://example.comhttp://www.example.com

于 2012-11-24T10:07:28.807 に答える