回答編集履歴

2

ちょうせい

2019/10/23 10:34

投稿

yambejp
yambejp

スコア114843

test CHANGED
@@ -150,8 +150,16 @@
150
150
 
151
151
  $_SESSION["chk"]=null;
152
152
 
153
-
153
+ print<<<eof
154
+
155
+ 不正処理<br>
156
+
157
+ [ <a href="{$_SERVER["SCRIPT_NAME"]}">戻る</a> ]
158
+
159
+ eof;
154
160
 
155
161
  }
156
162
 
163
+
164
+
157
165
  ```

1

ちょうせい

2019/10/23 10:34

投稿

yambejp
yambejp

スコア114843

test CHANGED
@@ -29,3 +29,129 @@
29
29
  したがってbでは再入力してはいけません。
30
30
 
31
31
  要件が不足もしくはエラーの際は別途ページcに飛んで再入力させてください
32
+
33
+
34
+
35
+ # sample
36
+
37
+ ざっと流れだけ
38
+
39
+ ```PHP
40
+
41
+ <?PHP
42
+
43
+ session_start();
44
+
45
+ $chk=filter_input(INPUT_GET,"chk",FILTER_DEFAULT,FILTER_REQUIRE_ARRAY);
46
+
47
+ if(is_null($chk) and isset($_SESSION["chk"])){
48
+
49
+ $chk=$_SESSION["chk"];
50
+
51
+ }
52
+
53
+ $action=filter_input(INPUT_GET,"action");
54
+
55
+ if(is_null($chk)){
56
+
57
+ print <<<eof
58
+
59
+ <form method="get">
60
+
61
+ <input type="hidden" name="action" value="confirm">
62
+
63
+ <label><input type="checkbox" name="chk[0]" value="A">A</label>
64
+
65
+ <label><input type="checkbox" name="chk[1]" value="B">B</label>
66
+
67
+ <label><input type="checkbox" name="chk[2]" value="C">C</label>
68
+
69
+ <input type="submit" value="send">
70
+
71
+ </form>
72
+
73
+ eof;
74
+
75
+ }elseif($action=="confirm"){
76
+
77
+ $_SESSION["chk"]=$chk;
78
+
79
+ $h_chk=htmlspecialchars(implode(",",$chk));
80
+
81
+ print <<<eof
82
+
83
+ <form method="get">
84
+
85
+ <input type="hidden" name="action" value="modify">
86
+
87
+ <div>chk:{$h_chk}</div>
88
+
89
+ <input type="submit" value="send">
90
+
91
+ <input type="submit" name="action" value="change">
92
+
93
+ </form>
94
+
95
+ eof;
96
+
97
+ }elseif($action=="change"){
98
+
99
+ $checked=array_fill(0,3,"");
100
+
101
+ foreach(array_keys($_SESSION["chk"]) as $val){
102
+
103
+ $checked[$val]=" checked";
104
+
105
+ }
106
+
107
+ $_SESSION["chk"]=null;
108
+
109
+
110
+
111
+ print <<<eof
112
+
113
+ <form method="get">
114
+
115
+ <input type="hidden" name="action" value="confirm">
116
+
117
+ <label><input type="checkbox" name="chk[0]" value="A"{$checked[0]}>A</label>
118
+
119
+ <label><input type="checkbox" name="chk[1]" value="B"{$checked[1]}>B</label>
120
+
121
+ <label><input type="checkbox" name="chk[2]" value="C"{$checked[2]}>C</label>
122
+
123
+ <input type="submit" value="send">
124
+
125
+ </form>
126
+
127
+ eof;
128
+
129
+ }elseif($action=="modify"){
130
+
131
+ /* SESSIONを利用して更新処理 */
132
+
133
+ header('Location:'.$_SERVER["SCRIPT_NAME"].'?action=complete');
134
+
135
+ exit;
136
+
137
+ }elseif($action=="complete"){
138
+
139
+ $_SESSION["chk"]=null;
140
+
141
+ print<<<eof
142
+
143
+ 更新しました<br>
144
+
145
+ [ <a href="{$_SERVER["SCRIPT_NAME"]}">戻る</a> ]
146
+
147
+ eof;
148
+
149
+ }else{
150
+
151
+ $_SESSION["chk"]=null;
152
+
153
+
154
+
155
+ }
156
+
157
+ ```