回答編集履歴

3

追記

2018/02/06 00:35

投稿

ngyuki
ngyuki

スコア4514

test CHANGED
@@ -73,3 +73,11 @@
73
73
  var_dump($keeplist);
74
74
 
75
75
  ```
76
+
77
+
78
+
79
+ ---
80
+
81
+
82
+
83
+ コメントにもある通り、クッキーのような外部からくる値を `unserialize` するのは危険なので `json_encode/json_decode` を使うほうが良いです。

2

修正

2018/02/06 00:35

投稿

ngyuki
ngyuki

スコア4514

test CHANGED
@@ -52,7 +52,17 @@
52
52
 
53
53
  $value = $_GET['keep_in'];
54
54
 
55
+ if (isset($keeplist[$value])) {
56
+
57
+ unset($keeplist[$value]);
58
+
59
+ } else {
60
+
55
- $keeplist[$value] = $value;
61
+ $keeplist[$value] = $value;
62
+
63
+ }
64
+
65
+
56
66
 
57
67
  setcookie("keeplist", serialize($keeplist), time()+60*60*24*30, "/");
58
68
 

1

追記

2015/03/24 15:02

投稿

ngyuki
ngyuki

スコア4514

test CHANGED
@@ -21,3 +21,45 @@
21
21
  $keeplist = unserialize($_COOKIE["keeplist"]);
22
22
 
23
23
  ```
24
+
25
+
26
+
27
+ ---
28
+
29
+
30
+
31
+ 例外処理とか無視した最小限で書くと下記のような感じです。
32
+
33
+
34
+
35
+ ```lang-php
36
+
37
+ <?php
38
+
39
+ $keeplist = array();
40
+
41
+
42
+
43
+ if (isset($_COOKIE['keeplist'])) {
44
+
45
+ $keeplist = unserialize($_COOKIE["keeplist"]);
46
+
47
+ }
48
+
49
+
50
+
51
+ if (isset($_GET['keep_in'])) {
52
+
53
+ $value = $_GET['keep_in'];
54
+
55
+ $keeplist[$value] = $value;
56
+
57
+ setcookie("keeplist", serialize($keeplist), time()+60*60*24*30, "/");
58
+
59
+ }
60
+
61
+
62
+
63
+ var_dump($keeplist);
64
+
65
+ ```