3

セッションのCookieに無制限の時間を設定するにはどうすればよいですか?以下を試しましたが、1日経っても、セッションで未定義のインデックス通知が表示されます。

setcookie('idcourse', 'CourseID', 9999999999);
setcookie('namecourse', 'CourseName', 9999999999);
setcookie('id', 'ID', 9999999999);

if (isset($_POST['idcourse'])) {

$_SESSION['idcourse'] = $_POST['idcourse'];

}

if (isset($_POST['namecourse'])) {

$_SESSION['namecourse'] = $_POST['namecourse'];

}

if (isset($_POST['id'])) {

$_SESSION['id'] = $_POST['id'];

}
4

2 に答える 2

4

有効期限を追加する必要があります。そうしないと、Cookie はセッションのように機能し、ウェブサイトを離れると期限切れになります。

あなたがしていることはほぼ正しいですが、少し変更する必要があります。

有効期限を 9999999999 に設定しているため (今後は UNIX TIMESTAMP を指定する必要があります)、次を使用します。

$inTwoMonths = 60 * 60 * 24 * 60 + time();
setcookie('idcourse', 'CourseID', $inTwoMonths );
setcookie('namecourse', 'CourseName', $inTwoMonths );
setcookie('id', 'ID', $inTwoMonths );

Cookie の有効期限が 2 か月になるため、それに応じてこれを増やすことができます。

于 2012-09-10T16:39:59.413 に答える
0

Cookie を無期限に設定しないでください。何かを長期間保存する必要がある場合は、localStorageを使用してください。有効期限はありません。それらは実際には Cookie ではありませんが、ブラウザーに情報を設定する方法でもあります。これには JavaScript を使用するだけです。

PHPに関しては、情報を永続的に保存するデータベースに頼ることができます。セッション情報のロードに使用できるものをローカル ストレージに設定できます。しかし、私の提案は localStorage を使用することです。

于 2012-09-10T16:41:26.567 に答える