2017-03-03 19 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']を置くことができます。ユーザーが別のURLを訪問するたびにこのセッション値が更新されます。ログアウト中に、$ _SESSION ['visited_pa​​ge']内のURLを$ _SESSION ['last_visited']に割り当て、$ _SESSION ['visited_pa​​ge']を設定解除することができます。今度はあなたが最後にURLユーザーを訪問しました。私はあなたが私のポイントを得ることを望む。

+0

非常に便利な、ありがとう! –

0

ログアウト機能でリダイレクトすると、last_visited変数を確認できます。あなたは$_GET['last_visited']が設定されている場合、それはあなたがそのページ

+0

.../logout.phpとして設定されているlast_visited $問題はありませんが、私が欲しいそのURLがあります –

0

へのログインからのリダイレクト、その後であれば、チェックあなたの中にログイン後

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

:あなたがとても好きにリダイレクトしているURLに追加まず、$ _SERVER ['HTTP_REFERER']を使って変数にユーザー参照ページを取得する必要があります。ログインページで

LIKE:

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

、ユーザーがログインしてクリックしたときに、今、ユーザーにヘッダの場所を変更する参照してくださいページ

LIKE:

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

そして、この時間では、あなたが最初にチェックする必要がありますあなたのユーザーがあなたのログインページを直接訪問することができるため、そのユーザーがページを空にしているかどうかを参照します。その後、$ refPage変数は空になりますので、Click to Loginページはここに残ります

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値を取得し、前のページをリダイレクトそして、あなたはまた、空の指すページをチェックしてくださいすることができますログインしてクリックします。ページ。

はありがとう。

関連する問題