【发布时间】: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 中输入的值,但无济于事。有什么帮助吗?
【问题讨论】:
-
从 admin_console.php 中删除 session_name() 调用。或者在 login.php 中添加同一行:php.net/manual/en/function.session-name.php