※ ChatGPTを利用し、要約された質問です(原文:クッキーに配列データを)
クッキーに配列データを保存する方法
このQ&Aのポイント
クッキーに配列データを保存する方法についてアドバイスを頂きたいです。
DBに登録されているデータの連番を、配列データとしてクッキーに登録する方法がうまくいきません。
過去に閲覧した内容をカウントするためにクッキーを使用したいのですが、正しい方法がわかりません。
こんばんは。お世話になってます。
クッキーに配列データを保存したく、調べながら試行錯誤を繰り返していますが行き詰まってしまい、
アドバイスを頂戴できればと投函させて頂きます。
やりたいことは、掲示板にて書き込まれた内容をDBで管理しているのですが、各スレッドごとに1つのファイル(ページ)にて
呼び出しており、ページを閲覧した際、過去に1度でも閲覧した内容はカウント(訪問者数)せず、初めて閲覧した時のみ
カウントするといった内容にしたいのですが、DBに登録されているデータも複数あることから、
DBに登録されているデータの連番を、配列データ(クッキー名:view)としてクッキーに登録しようと
考えるところまで至っていますが、うまく登録することが出来ずにいる次第です。
他にもっと適切なやり方があったら、そのご意見も頂戴したいのですが、以上のような考え方の場合、以下のスクリプトにおいて、
どこが不適切なのかをご指摘いただければ幸いにおもっております。
以下が、現在テスト中のスクリプトです。
$view_array = $_COOKIE["view[]"];
$view_array = unserialize(base64_decode($view_array));
//print_r($view_array);
if(isset($_COOKIE["view[]"])){
if(!in_array($pno, $view_array)){
$count = $count+1;
$sql = "update name set
count = $count
where no ='$pno'";
mysql_query($sql);
$view_array[] = $pno;
setcookie("view[]", base64_encode(serialize($view_array)), time() + 60*60*24*360, "/");
}
}else{//クッキーに該当する配列がなかった場合
$count = $count+1;
$sql = "update name set
count = $count
where no ='$pno'";
mysql_query($sql);
$view_array = array($pno);
setcookie("view[]", base64_encode(serialize($view_array)), time() + 60*60*24*360, "/");
}
以上、お忙しいなか恐縮ですが、宜しくお願いいたします。
お礼
hrm_mmmさんへ はじめまして、こんばんは。ご親切にも説明を加えてのソースの提示、他アドバイスをいただき有難う御座います!とても分かり易かったです!ホント助かりました。有難う御座いました!