2016-08-15 50 views
0

セッション変数が約30-90分後に消えていることがわかりました。次のようにセッション変数が消える

function setSsnVar($nm, $vlu) { 
    chkSsn(); 
    $_SESSION[$nm] = $vlu; 
} 

をし、それらを取得する:私は次のようにセッション変数を設定しています

function chkSsn() { 
    if (session_status() == PHP_SESSION_NONE) 
     session_start(); 
} 

:私は、セッション変数を取得する前に、セッションが通常の方法で開始されていることを確認し

function ssnVar($nm) { 
    chkSsn(); 
    if (array_key_exists($nm, $_SESSION)) 
     return $_SESSION[$nm]; 
    else 
     return ""; 
} 

"session_start"の直後に次の行を追加しようとしましたが、違いはありません:

header("Cache-Control: no-cache"); 
header("Pragma: no-cache"); 

Firefox 48、Apache/2.4.7(Ubuntu)、PHPバージョン5.5.9-1ubuntu4.19を使用しています。

+1

多分[この質問](http://stackoverflow.com/questions/8311320/how-to-change-the-session-timeout-in-php)が役立つかもしれませんか? – Henders

答えて

1

php.iniの設定により、セッションデータがクライアントブラウザまたはサーバー内でタイムアウトする可能性があります。標準設定はsession.cookie_lifetimesession.gc_maxlifetimeです。実際には、セッションの有効期間を制御する追加の重要な設定があるので、私はこれを強くお勧めしますarticle

したがって、関数phpinfo()PHP Manual - phpinfoを呼び出すPHPページを作成すると、PHP設定が出力されます。そこから問題を解決できるはずです。

関連する問題