2016-09-09 5 views
0

最後のページを保存するためにセッション変数を作成する。ユーザーのログイン/ログアウトの場合、そのユーザーは同じページに戻ります。そのうまくいっている。しかし、今私は、notify.phpページによって新しいコメント通知のために5秒間隔でajax呼び出しを行います。だから私はログイン/ログアウト、今私のスクリプトnotify.phpページに私を返します。私は何らかの理由でajaxコールを避けることはできません。phpで完全なURLを取得したいが、ajax呼び出しスクリプトページを取得したくない。

だから、すべてのバックグラウンドスクリプトページがセッション変数として設定されないようにする方法はありますか?あなたはHTTP_X_REQUESTED_WITHヘッダの値をチェックする必要がある

if(isset($_SESSION['url'])){ 
    $this->refer = $_SESSION['url']; 
    }else{ 
    $this->refer = "/"; 
    } 

/* Set current url */ 
    $this->url = $_SESSION['url'] = basename($_SERVER['REQUEST_URI']); 
+1

'if(url!= 'notify.php')'? –

+0

は 'notify.php'の例外を作成し、' $ _SESSION ['url'] 'にアクセスすることを禁止します。 –

答えて

0

は、ここでセッション変数のための私のコードです。それがxmlhttprequestの場合は、AJAXリクエストです。

ので、これらの値を容易に変更することができますが、彼らは、クライアント側から来て、あなたのコードは、次のように

if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { 
     // It's an AJAX call. 
} 
else { 
     // Save last visited URL here.. 
} 

を見てしまうと、私たちはそのデータを信頼することはできません。


あなただけAJAXのために使用される単一またはURLのカップルを持っている場合は、直接、AJAX呼び出しをフィルタリングするために彼らとURLを比較することができ、これは、上記の溶液に比較して良いでしょう。

関連する問題