2017-01-05 5 views
0

作業私は2つのファイルが作成された:セッションのSet-Cookie-のparamsパス非

// /var/www/blah/index.php (www.example.com/blah/index.php) 

session_set_cookie_params(0, '/blah'); 
session_start(); 
$_SESSION['hello'] = 1; 

// /var/www/foo/index.php (www.example.com/foo/index.php) 

session_set_cookie_params(0, '/foo'); 
session_start(); 
echo $_SESSION['hello']; 

をブラウザの最初の、2番目を開くと、私は1を取得します。

同じSESSIONが両方で利用できるのはなぜですか?

session-set-cookie-paramsに従うべきではありません。

+0

これはありません。どのようにテストしましたか? –

+0

@AlexBlex:テストを表示するために編集しました。 – Basj

+0

コード例に欠陥があります。これはあなたが実際のコードをコピーしていないことを意味し、あなたの例はおそらく欠陥があり、あなたは何かを見落としました。それは記述されたとおりに正確に動作するはずです。 – Xatenev

答えて

3

私はfreenodeの上に## PHP言ったように:あなたは、有効なPHPSESSID cookieを持っていると、ブラウザがそれを再生し続けるため

ブラウザはsession_set_cookie_params()を尊重していません。 (前にページにアクセスしたため)。すべてPHPSESSID cookiesを削除してもう一度お試しください。

+0

実際、このようないくつかの事後に 'session_destroy();'が最後に働きました。 – Basj