セッション変数はセッション用です。デフォルトでは、寿命は短くなります(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;
}