如何使用PHP将会话从一个页面继续到另一个页面

时间:2010-03-30 02:05:41

标签: php session

好的我设置了一个会话......但是现在如何让它在我的其他页面上运行?

我试过

@session_start();

if(isset($_SESSION['$userName'])) {

 echo "Your session is running " . $_SESSION['$userName'];

}

8 个答案:

答案 0 :(得分:12)

如果您的PHP设置清晰(会话写入正常)并且cookie通常发送到浏览器(并保留),您应该能够做到这样的事情

在第一页:

session_start();
$_SESSION['userName'] = 'Root';

在第二页:

session_start();
if(isset($_SESSION['userName'])) {
  echo "Your session is running " . $_SESSION['userName'];
}

注意必须在发送任何输出之前调用session_start(),因此如果必须使用@for session_start,它可以隐藏警告。

由于这些是警告,如果给定示例不起作用,请尝试在调用session_start之前添加它:

error_reporting(E_ALL);

答案 1 :(得分:1)

在第一页(test1.php)上,

<?php
session_start();

$_SESSION['userName'] = 'This is Ravi';

?>

在第二页(test2.php)上,

<?php
session_start();
if(isset($_SESSION['userName'])) {
echo "Your session is running " . $_SESSION['userName'];
}

?>

答案 2 :(得分:0)

确保session_start()位于您希望使用会话的每个页面的顶部。然后,您可以像在示例中一样引用会话变量。

答案 3 :(得分:0)

检查会话cookie是否在第一次点击时发送到浏览器,并在后续请求中由浏览器返回。有很多原因可能导致失败 - 通常PHP在调用session_start()之前刷新了标头(这可能是由于UTF-8 BOM字符或只是杂乱的编程)。

确保您已启用错误报告。

下进行。

答案 4 :(得分:0)

确保两个网页都在同一个域中。 甚至www.site.com也不同于site.com

使用echo session_id();还有助于在每个页面上识别您的session_id,确保有相同的

答案 5 :(得分:0)

请注意$_session名称变量中的区分大小写。

因此$_SESSION['userName']$_SESSION['username']不同。

答案 6 :(得分:0)

  1. 创建登录页面,用户不得在没有正确ID和passowrd的情况下登录。
  2. 登录后,用户来到家中,此处用户可以注销并返回登录页面
  3. 注意:用户不得在不通过登录页面的情况下访问主页。

答案 7 :(得分:0)

  

第一页(hello1.php) - 存储会话

$userName = "Nick";
session_start();
$_SESSION['username'] = $userName;
  

第二页(hello2.php) - 输出会话

session_start();
$userName = $_SESSION['username'];
echo "$userName";

输出:尼克