1

私は自分のウェブサイト用のフォーラム スクリプトを作成しました。すべて正常に動作していますが、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 に答える