好的我设置了一个会话......但是现在如何让它在我的其他页面上运行?
我试过
@session_start();
if(isset($_SESSION['$userName'])) {
echo "Your session is running " . $_SESSION['$userName'];
}
答案 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)
注意:用户不得在不通过登录页面的情况下访问主页。
答案 7 :(得分:0)
第一页(hello1.php) - 存储会话
$userName = "Nick";
session_start();
$_SESSION['username'] = $userName;
第二页(hello2.php) - 输出会话
session_start();
$userName = $_SESSION['username'];
echo "$userName";
输出:尼克