2017-03-03 76 views
0

我閱讀了很多關於它的文章,但我無法找到如何解決我的問題。當我的腳本未設置會話時,只需要重定向他登錄時,他可以輕鬆地登錄並返回到他已註銷的頁面。登錄後將用戶重定向到上一頁

public static function expired() 
    { 
     if (isset($_SESSION['logged_id'])) 
     { 
      if (time() - $_SESSION['time'] > 3600) 
      { 
       header('Location: http://nostools.cz/scripts/logout.php'); 
       $_SESSION['last_visited'] = $_SERVER['REQUEST_URI']; 
      } else { 
       $_SESSION['time'] = time(); 
       return true; 
      } 
     } 
    } 

    public function logout() 
    { 
     $onlinedestroy = Query::getInstance()->delete('online', array('user_id', '=', $_SESSION['logged_id'])); 
     unset($_SESSION['logged_id']); 
     $this->redirect("http://nostools.cz/content/login/"); 
    } 

此腳本在每一頁上。在$ _SESSION ['last_visited']是logout.php,我需要得到前一頁,我也嘗試使用$ _SERVER ['HTTP_REFERER']。 有人可以告訴我如何獲得上一頁?

回答

1

你可以在一個會話裏面存儲url,$ _SESSION ['visited_pa​​ge']裏面的頭部。每次用戶訪問不同的網址時,該會話值都會更新。在註銷期間,您可以將$ _SESSION ['visited_pa​​ge']內的url分配給$ _SESSION ['last_visited']並取消設置$ _SESSION ['visited_pa​​ge']。現在你有最後一次訪問的url用戶。我希望你明白我的觀點。

+0

非常有用的,謝謝! –

0

當您在註銷功能中重定向時,您可以檢查last_visited變量。將它添加到您要重定向到像現在這樣的網址:

$this->redirect("http://nostools.cz/content/login?last_visited=" . $last_visited);

然後當你登錄你是否$_GET['last_visited']設置,如果是,那麼你從你的登錄重定向到該頁面

+0

有問題$ last_visited設置爲.../logout.php但不是URL我想 –

0

您應該首先使用$ _SERVER ['HTTP_REFERER'];在變量中獲取用戶引用頁面;在你的登錄頁面。

LIKE:

<?php 
    session_start(); 
    $refPage = $_SERVER['HTTP_REFERER']; 
?> 

而現在,當用戶點擊登錄,然後更改標題的位置,以用戶參考頁

LIKE:

<?php 
if(isset($_POST[login])){ 
    session_start(); 
    header('location:' . $refPage); 
} 
?> 

而在這個時候,你應該首先檢查該用戶引用頁面爲空或不是因爲您的用戶可以直接訪問您的登錄頁面,那麼您的$ refPage變量將爲空,因此點擊後登錄頁面會保留在這裏

LIKE:

<?php 
if(isset($_POST[login])){ 
    session_start(); 
    $refPage = $_SERVER['HTTP_REFERER']; // get reffer page url 
    if(empty($refPage)){ 
     header('location: yourredirectpage'); // if ref page is empty then set default redirect page. 
    }else{ 
     header('location:' . $refPage); // or if ref page in not empty then redirect page to reffer page 
    } 
} 
?> 

或者你可以使用輸入類型隱藏在這裏你可以設定值$ _ SERVER [ 'HTTP_REFERER'];

LIKE:

「> 而當用戶點擊登錄,那麼你可以得到refPage值和重定向之前的頁面,你也應該檢查空參考頁面,因爲您的用戶可以訪問直接登錄。頁面。

謝謝。

相關問題