【问题标题】:$_SESSION values do not retain values when passed from another page$_SESSION 值在从另一个页面传递时不保留值
【发布时间】:2014-07-16 08:24:01
【问题描述】:

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

【问题讨论】:

标签: php session


【解决方案1】:

天哪,这是世界上最严重的错误。

Google Chrome 出于某种原因会保存以前的尝试或页面。所以在我最初的测试中,页面失败了。但是当我修复代码时,浏览器仍然保留了旧样式。

我刚刚有这种感觉,想在隐身模式下尝试代码,它成功了!

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

【讨论】:

    【解决方案2】:

    这只是一个通知(警告)。你可以设置error_reporting(7);来去掉这条消息。

    您的代码看起来不错,请检查您的 php 信息“会话部分”。

    【讨论】:

      猜你喜欢
      • 2016-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-18
      • 2021-06-08
      相关资源
      最近更新 更多