所以我有一个问题,我定义了几个$ _SESSION值,需要发送到下一页。以下是我对问题的看法。
的login.php
session_set_cookie_params(900, '/', 'localhost:8080/test/');
session_start();
$_SESSION['first_name'] = "Moe";
$_SESSION['last_name'] = "Joe";
header("Location: http://" . $_SERVER['HTTP_HOST'] . "/test/admin_console.php?" . SID);
exit();
?>
在下一页上,我希望定义$ _SESSION [' first_name']和$ _SESSION [' last_name'],因为它们已由上面的代码设置。以下是我的代码在下一页的内容
admin_console.php
session_name('AdminLogin');
session_start();
#Set page title and include HTML header
$page_title = 'Administrative Console';
include('./header.inc');
$mysession = session_get_cookie_params();
$msg = $_SESSION['first_name'];
echo "Is the thing set? " . $msg . "<br />";
?>
问题是,我收到以下错误:
*Notice: Undefined index: first_name in C:\wamp\www\test\admin_console.php on line xx*
我不能为我的生活弄清楚为什么$_SESSION['first_name']
不会保留上一页的价值。我在每个页面都有session_start()
,我甚至在本页末尾添加了几行来完全杀死会话
<?php
$_SESSION = array();
session_destroy();
setcookie('PHPSESSID', '', time()-300, '/', '', 0);
?>
所以我的echo语句应该显示在$ _SESSION中输入的值,但无济于事。有什么帮助吗?
答案 0 :(得分:0)
OH我的上帝,这是世界上最严重的错误。
谷歌浏览器出于某种原因保存以前的尝试或页面。因此,在我的初始测试期间,页面失败了。但是当我修复代码时,浏览器仍保留旧样式。
我刚才有这种感觉在我的直觉中尝试隐身模式中的代码,并且它已经工作了!
经验教训:如果您的代码看起来很完美,无论如何您仍然会遇到相同的错误,请尝试使用其他浏览器或清除浏览器缓存。
答案 1 :(得分:-1)
这只是一个通知(警告)。您可以设置error_reporting(7);
以删除此消息。
您的代码看起来很好,请查看您的php信息&#34;会话部分&#34;。