从其他页面传递时,$ _SESSION值不保留值

时间:2014-07-16 08:24:01

标签: php session

所以我有一个问题,我定义了几个$ _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中输入的值,但无济于事。有什么帮助吗?

2 个答案:

答案 0 :(得分:0)

OH我的上帝,这是世界上最严重的错误。

谷歌浏览器出于某种原因保存以前的尝试或页面。因此,在我的初始测试期间,页面失败了。但是当我修复代码时,浏览器仍保留旧样式。

我刚才有这种感觉在我的直觉中尝试隐身模式中的代码,并且它已经工作了!

经验教训:如果您的代码看起来很完美,无论如何您仍然会遇到相同的错误,请尝试使用其他浏览器或清除浏览器缓存。

答案 1 :(得分:-1)

这只是一个通知(警告)。您可以设置error_reporting(7);以删除此消息。

您的代码看起来很好,请查看您的php信息&#34;会话部分&#34;。