2017-01-03 23 views
0

ブラウザページを閉じるか手動でログアウトするまで、ログインしたままにしておいて、ログインページ/システムが正しく機能しています。しかし最近は、セッションクッキーが期限切れになっているため、ユーザーが自動的にログアウトするようになっています(昨日から)。数秒後にPHPセッションがランダムに期限切れになる

これは、さまざまなブラウザと異なるオペレーティングシステムで発生します.PHPバージョンは5.6.29で、最近変更されています(5.5以前、さらに5.3まで)。

私はsession_start()のすべてのページでセッションを作成して更新します。ログインスクリプトはまずユーザー名とパスワードを確認し、データベースから他のユーザーデータも取得します。これらの他のデータは、最初の変数に保存され、成功したログイン状態を次のように保存され

$_SESSION['username'] = $name; 
$_SESSION['usertype'] = $type; 

などのセッション変数に書き込まれます。このような私は、ログイン状態をチェックし、他のページで

$_SESSION['login'] = "ok"; 

session_start(); 
if(($_SESSION['login'] != "ok") OR ($_SESSION['usertype'] != "xxx")) { 
header("Location: ../login.php"); /* redirects to login page if conditions are not true */ 
exit; 
} 

ログイン作品、およびログインしたユーザーがいる限り、一定に連続して、多かれ少なかれ、それがそうであるように他のページに進みますが、することができます何人かが何時間も待っている場合は、10(すなわち、どんな活動もせずに)はログアウトしました(つまり、別のページを開くときにログインページにリダイレクトされました)。

は、それが超厄介なようにするには、それだけでも、半時間後に、期待どおりに動作時間の半分は...

すべてのヘルプは非常に高く評価されるだろう。


UPDATE:

ini_set('session.gc_maxlifetime', 3600');と `ini_set( 'session.cookie_lifetime'、3600)を追加します。助けてくれなかった。私は再びそれを取り除いた。

はその後、私はエラーログで見ていたし、これを見つけた:

ap_pass_brigadeがエラー103で失敗しました:ソフトウェアが接続 が

(問題がある、私が持っていない

を中止原因サーバ設定へのアクセス - これは共有されたウェブスペース上にあります...)

+0

。デフォルトのセッションタイムアウトはおそらくデフォルトであり、古いシステムではより大きな時間にアップされたでしょう。 – RiggsFolly

答えて

1

phpinfo()でphp設定(php.ini)を見ることができます。

<?php 
phpinfo(); 

最初にsession.gc_maxlifetimeの値を確認し、設定が必要な場合は次の方法を参照してください。

php.iniファイルの編集権限がない場合は、.htaccessファイルで設定できます。

。htaccessの

<IfModule mod_php5.c> 
    php_value session.cookie_lifetime 3600 
    php_value session.gc_maxlifetime 3600 
</IfModule> 

も、あなたが興味を持っている人にとってini_set();

<?php 
    ini_set('session.gc_maxlifetime', 3600); 
+0

この回答をご覧ください:http://stackoverflow.com/questions/3476538/php-sessions-timing-out-too-すぐに –

+0

あなたはphp.iniのデフォルトのセッション値を使うべきです。また、ブラウザのCookieをクリアして、Webサイトのエラーログファイルにエラーがないかどうかを確認してください。セッションデータを格納するフォルダが適切なアクセス権を持っているかどうかを確認することもできます –

0

ことによってそれを設定することができます。セッションは、実際には有効期限はありませんでしたが、セッション変数は消え(とランダムに再び再び現れました)。

これは、私はここに掲載フォローアップの質問で説明されて:あなたは新しいPHPをインストールした場合、 `php.ini`ファイルをチェックし、

php $_SESSION variables disappear and reappear randomly

関連する問題