2017-08-02 44 views
0

當我登錄,我應該被重定向到名爲「control_panel.php」另一頁,但事情是,當我刷新我再次得到重定向回'login.php'頁面。登錄訪問其他網頁訪問控制面板(重定向到另一個頁面)

的login.php頁:

<?php 
session_start(); 

$username = "admin"; 
$pw = "pixels2020"; 

//CHECKS FOR THE RIGHT USERNAME AND PW. 
if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
    if ($_POST['username'] == $username && $_POST['pw'] == $pw) { 
     $_SESSION['login'] = "logged_in"; 
//  header("Location:http://localhost/Task11/control_panel.php"); 
} else 
    $msg = "Wrong Username or Password."; 
} 

//SET SESSION VARIABLE TO logged_in 
if (isset($_SESSION['login'])) { 
    $_SESSION['login'] = "logged_in"; 
    echo $_SESSION['login']; 
    header("Location:http://localhost/Task11/control_panel.php"); 
} 
?> 

control_panel.php:

<?php 
session_start(); 

if ($_SESSION['login'] !== 'logged_in') 
    header("Location:http://localhost/Task11/login.php"); 
?> 
//Some php code 
//Some html code 

提前感謝!

+0

也許一個cookie問題。 嘗試刪除Cookie後。 – 2017-08-02 07:09:44

+0

打印出來的'$ _SESSION [ '登錄']'只是'在session_start()之後;'的'login.php'頁面。如果它是空的你登錄後 - 然後嘗試使用[session_set_cookie_params()](http://php.net/manual/en/function.session-set-cookie-params.php)功能,以您的configurate會話參數。 – Sergej

回答

0

我不知道,如果它只是一個在這裏SO錯字,但你else語句後忘了{

爲什麼設置$_SESSION['login']兩次?驗證結果爲肯定後,您可以設置$_SESSION['login'] = "logged_in"

的login.php

<?php 
session_start(); 

$username = "admin"; 
$pw = "pixels2020"; 

//CHECKS FOR THE RIGHT USERNAME AND PW. 
if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
    if ($_POST['username'] == $username && $_POST['pw'] == $pw) { 

     // Handle the $_SESSION and redirect just here, after verification 
     $_SESSION['login'] = "logged_in"; 
     header("Location:http://localhost/Task11/control_panel.php"); 

} else { 
    $msg = "Wrong Username or Password."; 
} 
?> 

control_panel.php:

<?php 
session_start(); 

if ($_SESSION['login'] !== 'logged_in') { 
    header("Location:http://localhost/Task11/login.php"); 
} 
?> 

這種方式應該有現在的錯誤。如果仍然出現錯誤,則可能在另一個腳本文件內部存在錯誤。

+0

當用戶輸入登錄頁面但他已經登錄時使用第二個會話變量(不通過POST方法。) –

0

我發現它的傢伙,這是一個小的失誤。 我與它被設置爲

onnclick=「<?phpp destroy_session() ?>」 

和一些如何excuted聲明沒有點擊該按鈕的onclick屬性做出另一個按鈕與其他行動(登錄頁面)。請解釋爲什麼如果你可以。

相關問題