$_SESSION
変数を含むページがあります。一定の時間が経過すると、すべてのセッションが期限切れになりますが、これは十分公平です。しかし、問題は、$_SESSION 変数が期限切れになったため、未定義の通知を突然受け取ることです。
したがって、この状況では、セッションの有効期限が切れたときに行う最善の方法は何ですか? 通知を表示しないためにコードを含めるだけE ^ NOTICE
ですか (ページがエラーなしで完全に完了したことを確認した後)、またはページで使用してセッションを破棄することが期待されてsession_destroy()
いますか、またはこれらの未定義のエラーを表示しない他の方法がありますか?ブラウザでこれらのページを表示しているユーザーに対して、セッションの有効期限が切れたときにページを表示する可能性があります。
以下は、 $_SESSION コードを表示する方法に関するコード例です。
<?php
ini_set('session.gc_maxlifetime',12*60*60); //12 hours until session expires
ini_set('session.gc_divisor', '1');
ini_set('session.gc_probability', '1');
ini_set('session.cookie_lifetime', '0');
require_once 'init.php';
session_start(); //starts sessions
include('member.php'); //this php script also contains sessions
if (isset($_POST['id'])) {
$_SESSION['id'] = $_POST['id'];
}
if(isset($_POST['sessionNum'])){
//Declare my counter for the first time
$_SESSION['initial_count'] = $_POST['sessionNum'];
$_SESSION['sessionNum'] = intval($_POST['sessionNum']);
$_SESSION['sessionCount'] = 1;
}
if (isset($_POST['submitDetails']) && $_SESSION['sessionCount'] < $_SESSION['sessionNum']) {
$_SESSION['sessionCount']++;
}
$sessionMinus = $_SESSION['sessionCount'];
if (isset($_POST['textQuestion'])) {
$_SESSION['textQuestion'] = $_POST['textQuestion'];
}
if (isset($_POST['textMarks'])) {
$_SESSION['textMarks'] = $_POST['textMarks'];
}
if (isset($_POST['totalWeight'])) {
$_SESSION['totalWeight'] = $_POST['totalWeight'];
}
if ($sessionMinus == $_SESSION['initial_count']){
$action = 'individualmarks.php';
}elseif($sessionMinus != $_SESSION['initial_count']){
$action = $_SERVER['PHP_SELF'];
}
?>