teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

違う形で対応しましたので、質問をクローズさせていただきます。

2021/10/20 04:20

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -2,51 +2,4 @@
2
2
  閲覧した個別のページ情報(情報は個別ページのID値です)をCookieで管理して、閲覧履歴ページで利用したいと思っています。
3
3
  現在個別ページでクッキーを保存して、phpでその値を表示や取得することは出来ていますが、一覧ページでその値を取得しようとすると、なぜかクッキーが存在しないことになっています。
4
4
  おそらくクッキーが保存したページでしか見れない状態なんだろうと思いますが、どのように解決したら良いかわかりません。
5
- どうぞ宜しくおねがいします。
5
+ どうぞ宜しくおねがいします。
6
-
7
- 【詳細】
8
- 個別ページ(hoge.com/rec-serch/post/single)
9
- ```javascript
10
- jQuery(function($) {
11
- let pid = $(".single_data_id").data('id');//ポストID取得
12
- let url = location.hostname;
13
- if(pid){
14
- var viewed = JSON.parse(localStorage.getItem('viewed')) || [];//現在の登録内容を取得
15
- var index = viewed.indexOf(pid);//既に登録済か調査 -1なし 0>=あり
16
- if(index > -1){//すでに配列に含まれる場合は一旦削除
17
- viewed.splice(index, 1);
18
- }
19
- viewed.unshift(pid);//新たに配列のトップに追加
20
- localStorage.setItem('viewed',JSON.stringify(viewed));
21
- viewed_list = JSON.parse(localStorage.getItem('viewed'));
22
- var now = new Date();
23
- now.setMinutes(now.getMinutes() + (60 * 24 * 7));//有効期限は7日間とする
24
- cookie_val = 'viewed_list=' + viewed_list;
25
- cookie_val = cookie_val + ';path=' + url + ';expires=' + now.toUTCString();
26
- console.log(cookie_val) //※※※※ココの値は下に記載します。
27
- document.cookie = cookie_val;
28
- }
29
- });
30
-
31
- ```
32
- 上記の console.log(cookie_val) の数値は下記の通りです。
33
- ```js
34
- viewed_list=289,288,283,249,286,231,233,206,248,238,167,207;path=hoge.com/;expires=Mon, 18 Oct 2021 07:52:17 GMT
35
- ```
36
-
37
- 個別ページでは上記内容で保存したクッキーの値を下記の通りphpで取得出来ています。
38
- ```php
39
- <?php $viewed_list = explode(',',$_COOKIE['viewed_list']);
40
- var_dump($viewed_list);
41
- array_shift ($viewed_list); //個別ページの下部でその他の閲覧履歴として表示するために現在のページを覗いたポストIDの履歴を取得してワードプレスで表示
42
- ?>
43
- ```
44
- しかし、上記PHPと同じ構文で履歴ページ(hoge.com/history)で取得しようとすると var_dump($viewed_list);の結果は
45
- ```ここに言語を入力
46
- array(1) {
47
- [0]=>
48
- string(0) ""
49
- }
50
- ```
51
- となり取得が出来ません。
52
- どのようにすれば履歴ページで保存したクッキー値を履歴ページで取得出来ますでしょうか?