我正在尝试将Cookie设置为php会话变量,以便会话不会在2个月后过期。我遇到的问题是,大约3个小时后,当我刷新页面时,我在第30行得到$_SESSION['id']
的未定义索引。但我没有得到$_SESSION['id']
的未定义索引在第20-23行之间。
为什么我仍然得到未定义的索引,即使我已为此会话变量设置了cookie?
$inTwoMonths = 60 * 60 * 24 * 60 + time();
setcookie('id', 'ID', $inTwoMonths);
//line 20-23
if (isset($_POST['id'])) {
$_SESSION['id'] = $_POST['id'];
}
//line 30
<?php echo $_SESSION['id'] ?>
答案 0 :(得分:0)
会话!= COOKIE。
您必须在php.ini中设置SESSION TTL(默认为20分钟)。
在第20-23行,你没有得到未定义的索引,因为你设置了var。但是在第30行,你试图读取未定义的变量(因为你之前没有设置它。)
尝试这样的事情:
$_SESSION['id'] = $_COOKIE['id'];
你还需要使用session_start();到初始会话。