0

我正在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" }
4

4 回答 4

7

放在session_start();文件头

于 2012-12-07T17:21:37.220 回答
1

更改if (isset($_SESSION['uid']))if (isset($_SESSION['username']))?

您当前有关用户的会话信息存储在$_SESSION['username'], not$_SESSION['uid']中,因此您可以使用用户名来检查用户是否已登录,或者在用户登录时将 uid 放入会话中。

顺便说一句,不要在会话中输入您的密码。

于 2012-12-07T17:41:19.887 回答
1

你在做

isset($_SESSION['uid'])

但是当您执行 var_dump 时,该值不在转储中。您需要在某个时候将其添加到您的会话中(在执行 isset() 之前)。

在不相关的说明中,在会话中保存密码是不安全的。

于 2012-12-07T17:41:24.000 回答
1

根据您刚刚显示的输出,您似乎发现了问题。您设置了两个变量:

"username"
"password" 

在您上面的解决方案中,尽管您尝试引用:

$_SESSION['uid']

这似乎不存在。要么您没有创建此变量,要么没有正确设置它。无论哪种方式,逻辑都在做它应该做的事情。该变量未设置,因此您永远不会看到“创建”链接。尝试更改逻辑以指向您已经设置的两个变量之一,或为“$_SESSION['uid']”变量分配一个值。

希望这可以帮助。

于 2012-12-07T17:42:49.883 回答