2016-10-30 6 views
0

PHPページでセッションを手動でチェックすることなく、PHPでセッションを自動的に破棄することはできますか?PHP - PHPを呼び出さずにセッションを自動破棄

私はこれを検索しましたが、答えによってセッションが手動で破棄されました。

私はこの電車の有効期限が切れているかどうかをチェックするために電信の簡単なボットを作成しているので、この自動概念が必要です。または、プレイヤーが質問に答えるための最大時間制限に達しました(たとえば5秒)。

また、各ユーザーまたはプレーヤーのセッションをチェックするために、1秒ごとに設定されるcronジョブを使用する概念もあります。しかし、私はそれが毎秒に設定すると、それはあまりにも多くのメモリを消費すると思う、私はタイムアウトも正確ではないと思う。

あなたの誰かがこれについての洞察を分かち合うことができれば、とてもうれしいです。

ありがとうguya

答えて

1

はちょうどあなたが時計を開始する要求中のセッションのタイムスタンプを保存する(例:ユーザーが質問を提示されている場合)。例:プレーヤーがその後サーバーにリクエストを行うたびに、セッションのタイムスタンプと現在のタイムスタンプを比較します。時間制限を超えている場合は、時間切れとのメッセージを返します。このようにそれを実行します。

if(time() - $_SESSION['time'] > 5) 
{ 
    // Time's up! 
} 

あなたはそれについての時間が経過したかどうかをチェックする必要がある唯一の時間を考えているかのようにあなたは、このようにそれを行う場合は、バックグラウンドでのcronジョブを実行する必要はありませんすることはときに、ユーザーであります応答を提出しようとします。あなたはそれを受け入れるかしないかのどちらかです。ユーザーが何も提出しない場合は、別の方法で期限切れになるという実質的なポイントはありません。

Javascriptでもタイマーを実装したいと思うかもしれません。時間を過ぎたことをユーザーに示すことができます。これにより、ユーザーエクスペリエンスが向上します。したがって、Javascriptのタイマーはユーザーに通知し、上記の$ _SESSIONメソッドはサーバー側でそれを強制します。

+0

こんにちは、入力のためのありがとう、しかし、事実は、すべての選手アフリカやtheres誰も私のサーバー上のpaheを打つか?部屋は満期になりません – Webster

+0

あなたはJavascriptを使ってユーザーの側でタイマーを走らせようとしています。ユーザーに部屋の有効期限が切れたことが伝えられ、サーバ側のコードでは有効期限が切れた後に要求を拒否することによって適用されます。 –

+0

はい、残念ながら私の場合はユーザー側はありません。私は、Webサービスやエンドポイントを作成して、電話ボットAPIと通信するためです。 – Webster

0

条件文とPHP unixタイムスタンプの組み合わせを使用することができます。

関連する問題