2012-12-17 78 views
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'>"; 
} 
} 

工作,但是当用户注销和登录再次显示所有帖子都没有阅读。

任何想法如何解决这个问题?

回答

0

只有当您打开浏览器窗口并导航到某个站点时,会话才处于活动状态,直到您的代码重置会话或用户关闭浏览器。

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

相反,您应该创建一张表并将其与您的论坛帖子一起存储,该帖子具有UserId,PostID的条目,每次用户查看帖子时都会添加一行。然后使用此表来决定它是否被读取(表中有一行)或未读(没有与用户标识/ postid匹配的行)