2016-08-25 2 views
0

PHPでセッション処理に関する私のサーバー(PHP 5.4.0、apache)で奇妙な問題が見つかりました。破棄/リセット後にPHPセッションが無効にならずに生きています

:そして、そのような何かをしてログイン手続きがあり

static function startSession() 
{ 
    $httponly = true; 
    $secure = true; 

    if (ini_set('session.use_only_cookies', 1) === FALSE) { 
     exit(); 
    } 

    session_name("my_session"); 

    $cookieParams = session_get_cookie_params(); 

    session_set_cookie_params(
     60*60, 
     $cookieParams["path"], 
     $cookieParams["domain"], 
     $secure, 
     $httponly 
    ); 

    session_start(); 
} 

私は次のコードが含まれていますし、私のアプリケーションで何かする前に必ず呼び出されたセッションを開始する機能を持っています

$_SESSION['key1] = 'some value'; 

session_regenerate_id(true); 

そして最後にログアウト機能があります:

static function logout() 
{ 
    $_SESSION = array(); 

    $params = session_get_cookie_params(); 

    setcookie(
     session_name(), 
     '', 
     time() - 42000, 
     $params["path"], 
     $params["domain"], 
     $params["secure"], 
     $params["httponly"] 
    ); 

    return session_destroy(); 
} 

今号へ: 私がログインすると次のことが起こります:

私は呼んで将来的にどういうわけか
startSession(); 
... 
$_SESSION['key1'] = 'some_value'; 
... 

logout(); 

session_destroy(); trueを返すと、$ _SESSIONはリセットされます。すべてうまい。

次に、セッションクッキーを再度送信してリクエストを再試行し、情報を要求し、セッションが再度アクティブになります。すべての情報がそこにある。

sess_:394B

私は、次のセッションの設定があります。私は、生成されたセッションファイルを参照することができ、サーバ上で

ini_set('session.hash_function', 'sha512'); 
ini_set('session.entropy_file', '/dev/urandom'); 
ini_set('session.entropy_length', 256); 
ini_set('session.use_trans_sid', 0); 
ini_set('session.use_only_cookies', 1); 
ini_set('session.cookie_lifetime', 0); 
ini_set('session.use_strict_mode', 1); 
ini_set('session.cache_limiter', 'nocache'); 

私session_save_pathは()のどこかにあります/ var/www/html/sites/....

何が間違っているのですか?事前に

おかげで

デニス

答えて

0

[OK]を私は解決策を自分自身を発見しました。 iはiOSからのリクエストを目的cを使って送信しています。

すべてのリクエストについて、私はリクエストとともにクッキーを送信していました。

ログアウトでCookieが送信されないという問題がありました。だから私はログアウト機能を要求した。すべての要求がセッションを開始したと言いました。それから私はセッションをリセットし、それを破壊した。意味

: 要求ログインは - セッションを生成します。 要求ログアウトABC123 - 新しいセッションを生成します。xyz456 - セッションxyz456をログアウト - ABC123にログインしたまま

だから私のアドバイスは、あなたが破壊されていることを確認しています。右セッション:)

関連する問題