0

セッション変数に問題があります。問題は、セッション変数を使用して、一定期間後にユーザーがページなどを更新すると、未定義のインデックスがあることを示す通知が表示されるようになることです。

今でもセッション変数を使用したいのですが、どうすればセッションを長く続けることができますか?開発者はトークンのようなものを使用できると聞いています。これにより、ユーザーが1日か2日以上アイドル状態になっても、ページを更新したり別のページに移動したりしても、未定義のインデックス通知が表示されなくなります。画面上で。

トークンの使用例はありますか?

ありがとう

4

1 に答える 1

1

セッション変数はセッション用です。デフォルトでは、寿命は短くなります(20分程度)。

これは、セッションがタイムアウトになると、セッション変数を使用しようとしたときに、定義されていないセッション変数の通知が表示されるようになることを意味します(少なくとも通知が有効になっているエラーレポートがある場合)。

通常、セッション変数が存在するかどうかを確認し、存在しない場合は処理します。

if( ! isset( $_SESSION['my_var'] ) )
{
  // This session doesn't exist anymore - I'd better head over to the start page...
  header('Location: index.php');
  exit;
}

さて、セッションの存続期間を2、3日に設定することはお勧めしません。代わりに、Cookieを設定し、これらのそれぞれのコンテンツと寿命を定義することを検討する必要があります。

setcookie('my_var', 'My Value', time() + 60 * 60 * 24 * 3); // a cookie lasting three days

ただし、Cookieの存在を確認しないと、4日目の通知で同じ問題が発生します。

if( ! isset( $_COOKIES['my_var'] ) )
{
  // This cookie doesn't exist anymore - I'd better head over to the start page...
  header('Location: index.php');
  exit;
}
于 2012-09-09T20:12:45.713 に答える