我正在为我的论坛view_category.php
页面工作,但我遇到一个小问题我的链接无法正常工作我正在登录但页面显示我没有登录它对待我就像我只是查看论坛的客人因此我无法在论坛上创建主题,我的create_topic.php链接无法访问。
这是我的代码
// Assign local variables
$cid = $_GET['cid'];
// Check to see if the person accessing this page is logged in
if (isset($_SESSION['uid'])) {
$logged = " | <a href='create_topic.php?cid=".$cid."'>Click Here To Create A Topic</a>";
} else {
$logged = " | Please log in to create topics in this forum.";
}
为什么会发生这种情况?
我刚刚加入
var_dump($_SESSION);
这就是输出
array(2) { ["username"]=> string(7) "mura" ["password"]=> string(4) "1234" }
答案 0 :(得分:7)
将session_start();
放在文件的标题
答案 1 :(得分:1)
将if (isset($_SESSION['uid']))
更改为if (isset($_SESSION['username']))
?
您当前有关用户的会话信息存储在$_SESSION['username']
中,而不是$_SESSION['uid']
,因此您可以使用用户名检查用户是否已登录,或将uid放入会话中当用户登录时。
顺便说一句,不要把密码放在会话中。
答案 2 :(得分:1)
你在做什么
isset($_SESSION['uid'])
但是当你执行var_dump时,该值不在转储中。您需要在某个时刻将其添加到会话中(在执行isset()之前)。
在不相关的说明中,在会话中保存密码是不安全的。
答案 3 :(得分:1)
根据您刚刚显示的输出,您似乎发现了问题。你有两个变量集:
"username"
"password"
在上面的解决方案中,您尝试引用:
$_SESSION['uid']
似乎不存在。要么您没有创建此变量,要么未正确设置。无论哪种方式,逻辑都在做它应该做的事情。该变量未设置,因此您永远不会看到“创建”链接。尝试更改逻辑以指向您已设置的两个变量之一,或者为“$ _SESSION ['uid']”变量赋值。
希望这有帮助。