質問編集履歴

1

書式の改善

2020/08/13 05:07

投稿

bechamel
bechamel

スコア4

test CHANGED
File without changes
test CHANGED
@@ -155,3 +155,121 @@
155
155
  }
156
156
 
157
157
  ```
158
+
159
+
160
+
161
+ また、「ページ遷移が不正です」が表示される原因となる、mailform_tokenについて記載がある箇所が下記になります。
162
+
163
+ #### 各雇用形態のフォームページにCSRF対策として、下記のコードを記載しております。
164
+
165
+ ```php
166
+
167
+ <?php
168
+
169
+ //CSRF対策用
170
+
171
+ session_name('PHPMAILFORMSYSTEM');
172
+
173
+ session_start();
174
+
175
+ $token = sha1(uniqid(mt_rand(), true));
176
+
177
+ $_SESSION['mailform_token'] = $token;
178
+
179
+ $html = '<input type="hidden" name="mailform_token" value="'.$token.'" />';
180
+
181
+ ?>
182
+
183
+ ```
184
+
185
+
186
+
187
+ #### mail.phpの方にトークンをセットするために下記のコードを記載しております。
188
+
189
+ ``` php
190
+
191
+ //確認画面の入力内容出力用関数
192
+
193
+ function confirmOutput($arr){
194
+
195
+ global $hankaku,$hankaku_array,$useToken,$confirmDsp,$replaceStr;
196
+
197
+ $html = '';
198
+
199
+ foreach($arr as $key => $val) {
200
+
201
+ $out = '';
202
+
203
+ if(is_array($val)){
204
+
205
+ foreach($val as $key02 => $item){
206
+
207
+ //連結項目の処理
208
+
209
+ if(is_array($item)){
210
+
211
+ $out .= connect2val($item);
212
+
213
+ }else{
214
+
215
+ $out .= $item . ', ';
216
+
217
+ }
218
+
219
+ }
220
+
221
+ $out = rtrim($out,', ');
222
+
223
+
224
+
225
+ }else{ $out = $val; }//チェックボックス(配列)追記ここまで
226
+
227
+ if(get_magic_quotes_gpc()) { $out = stripslashes($out); }
228
+
229
+ $out = nl2br(h($out));//※追記 改行コードを<br>タグに変換
230
+
231
+ $key = h($key);
232
+
233
+ $out = str_replace($replaceStr['before'], $replaceStr['after'], $out);//機種依存文字の置換処理
234
+
235
+
236
+
237
+ //全角→半角変換
238
+
239
+ if($hankaku == 1){
240
+
241
+ $out = zenkaku2hankaku($key,$out,$hankaku_array);
242
+
243
+ }
244
+
245
+ if($key != 'type'){
246
+
247
+ $html .= "<tr><th>".$key."</th><td>".$out;
248
+
249
+ $html .= '<input type="hidden" name="'.$key.'" value="'.str_replace(array("<br />","<br>"),"",$out).'" />';
250
+
251
+ $html .= "</td></tr>\n";
252
+
253
+ }
254
+
255
+ }
256
+
257
+ //トークンをセット
258
+
259
+ if($useToken == 1 && $confirmDsp == 1){
260
+
261
+ $token = sha1(uniqid(mt_rand(), true));
262
+
263
+ $_SESSION['mailform_token'] = $token;
264
+
265
+ $html .= '<input type="hidden" name="mailform_token" value="'.$token.'" />';
266
+
267
+ }
268
+
269
+
270
+
271
+ return $html;
272
+
273
+ }
274
+
275
+ ```