1

我已经为我的网站创建了一个论坛脚本,一切正常,但我一想就被阻止了,我尝试为访问的类别和帖子创建一个会话,所以如果登录的用户没有阅读帖子,脚本会显示图像“not_read.png”,否则显示“read.png”

所以我的代码是这样的:

$ctid = isset($_REQUEST['ctid']) ? $_REQUEST['ctid'] : '';
if ($action == 'spost'){
$select_posts = "SELECT * FROM forum_posts WHERE cat_id = '$ctid'....

session_set_cookie_params(0);
session_start();        
$_SESSION["CAT-$ctid"] = $ctid;
$ses_post = $_SESSION["CAT-$post_id"];
if ($ses_post == $post_id) {

echo "<img src='read.png'>";
}else{
echo "<img src='no_read.png'>";
}
}

正在工作,但是当用户注销并再次登录时,所有帖子都显示为未读。

知道我该如何解决这个问题吗?

4

1 回答 1

0

会话仅在您打开浏览器窗口并导航到站点的生命周期内处于活动状态,直到您的代码重置会话或用户关闭浏览器。

因此,如果您希望不同会话之间的用户可以使用它,那么将您的已读/未读标志存储在会话中是不可接受的。

相反,您应该创建一个表并将其与您的论坛帖子一起存储,其中包含 UserId、PostID 的条目,每次用户查看帖子时都会添加一行。然后使用这个表来决定它是已读(表中有一行)还是未读(没有与userid/postid匹配的行)

于 2012-12-17T18:24:12.043 回答