質問編集履歴

10

コードの変更

2019/09/15 05:42

投稿

sawara29
sawara29

スコア12

test CHANGED
File without changes
test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
 
21
- ###これは、入力form1.phpのコードです。
21
+ ###これは、入力form2.phpのコードです。
22
22
 
23
23
  ```phpsession_start();
24
24
 
@@ -362,7 +362,7 @@
362
362
 
363
363
 
364
364
 
365
- **ボールドテキスト**
365
+
366
366
 
367
367
  ```
368
368
 
@@ -523,3 +523,53 @@
523
523
 
524
524
 
525
525
  ```
526
+
527
+ ##この部分を
528
+
529
+ ```form2.php
530
+
531
+ //変数に POSTされたデータを代入
532
+
533
+ $name = isset($_POST['name']) ? $_POST['name'] : NULL;
534
+
535
+ $email = isset($_POST['email']) ? $_POST['email'] : NULL;
536
+
537
+ $subject = isset($_POST['subject']) ? $_POST['subject'] : NULL;
538
+
539
+ $body = isset($_POST['body']) ? $_POST['body'] : NULL;
540
+
541
+ $code = isset($_POST['code']) ? $_POST['code'] : NULL;
542
+
543
+
544
+
545
+ ```
546
+
547
+ ###このように、書き換えたのですが、
548
+
549
+ ```form2.php
550
+
551
+
552
+
553
+ $args = array(
554
+
555
+ 'name' => FILTER_DEFAULT,
556
+
557
+ 'email' => FILTER_VALIDATE_EMAIL,
558
+
559
+ 'subject' => FILTER_DEFAULT,
560
+
561
+ 'body' => FILTER_DEFAULT,
562
+
563
+ 'code' => FILTER_DEFAULT,
564
+
565
+ );
566
+
567
+ $post_data = filter_input_array(INPUT_POST, $args);
568
+
569
+
570
+
571
+ ```
572
+
573
+ Notice: Undefined variable: name in /Applications/MAMP/htdocs/form2.php on line 33
574
+
575
+ と出てしまい、全ての入力が、未入力の状態になって、赤文字のエラーメッセージが出ます。

9

コードの追加

2019/09/15 05:42

投稿

sawara29
sawara29

スコア12

test CHANGED
File without changes
test CHANGED
@@ -501,3 +501,25 @@
501
501
 
502
502
 
503
503
  が表示されてます。
504
+
505
+
506
+
507
+ ###冒頭のform1.phpの中に、サーバー変数を書いたところ、エラー表示が出ましたが、どうすれば良いかわからなくなってます。何が、不備なのか、アドバイスいただけたら、有り難いです。
508
+
509
+
510
+
511
+ ```form1.php
512
+
513
+ if($_SERVER["REQUEST_METHOD"]==="POST"){
514
+
515
+ POSTの時の処理
516
+
517
+ }else{
518
+
519
+ echo "不正なアクセス!!!";
520
+
521
+ }
522
+
523
+
524
+
525
+ ```

8

画面の修正

2019/09/14 10:07

投稿

sawara29
sawara29

スコア12

test CHANGED
File without changes
test CHANGED
@@ -479,3 +479,25 @@
479
479
  ?>
480
480
 
481
481
  ```
482
+
483
+
484
+
485
+ ###MAMPで、localhost/form1.phpにアクセスします。
486
+
487
+
488
+
489
+ 表示されたフォームに、名前、E-メール、件名、内容、画像認証のボックスがありますので、入力して、送信ボタンを押します。
490
+
491
+
492
+
493
+ 画面は、変わらないままですが、件名と、画像認証だけ入力文字が消えて、
494
+
495
+ 赤文字で、
496
+
497
+ 内容は必須項目です。
498
+
499
+ 確認キーワードは8文字で入力して下さい。
500
+
501
+
502
+
503
+ が表示されてます。

7

コードの追加

2019/09/14 07:21

投稿

sawara29
sawara29

スコア12

test CHANGED
File without changes
test CHANGED
@@ -226,9 +226,75 @@
226
226
 
227
227
 
228
228
 
229
- ```###html
229
+ ```###form1_view.php
230
+
230
-
231
+ このプログラムにjavascriptを組み込んでます。49行目付近
232
+
233
+ ```form1_view.php
234
+
235
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3 .org/TR/xhtml1-transitional.dtd">
236
+
237
+ 2 <html xmlns="http://www.w3.org/1999/xhtml">
238
+
239
+ 3 <head>
240
+
241
+ 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
242
+
243
+ 5 <meta http-equiv="Content-Style-Type" content="text/css" />
244
+
245
+ 6 <meta http-equiv="Content-Script-Type" content="text/javascript" />
246
+
247
+ 7 <title>メールフォーム</title>
248
+
249
+ 8 <link rel="stylesheet" type="text/css" href="css/style.css" media="screen,tv " />
250
+
251
+ 9 </head>
252
+
253
+ 10 <body>
254
+
255
+ 11 <div id="box">
256
+
257
+ 12 <div id="header">
258
+
259
+ 13 <h1>PHP for Web Designer</h1>
260
+
261
+ 14 </div>
262
+
263
+ 15 <ul id="menu" class="clearfix">
264
+
265
+ 16 <li><a href="question1.php">アンケート</a></li>
266
+
267
+ 17 <li class="active"><a href="form1.php">メールフォーム</a></li>
268
+
269
+ 18 <li><a href="webapi/">グルメMAP</a></li>
270
+
271
+ 19 </ul>
272
+
273
+ 20 <div id="main">
274
+
275
+ 21 <h2 class="mail-bar">メールフォーム</h2>
276
+
277
+ 22
278
+
279
+ 23 <?php if (isset($error)): ?>
280
+
281
+ 24 <?php foreach ($error as $val): ?>
282
+
283
+ 25 <font color="red"><?php echo $val; ?></font><br />
284
+
285
+ 26 <?php endforeach; ?>
286
+
287
+ 27 <?php endif; ?>
288
+
289
+ 28
290
+
291
+ 29 <form action="form2.php" method="post">
292
+
293
+ 30
294
+
295
+ 31 <dl class="clearfix mailform">
296
+
231
- ```ここに言語を入力32 <dt>お名前</dt>
297
+ 32 <dt>お名前</dt>
232
298
 
233
299
  33 <dd><label>
234
300
 
@@ -292,162 +358,124 @@
292
358
 
293
359
  63 </body>
294
360
 
295
- 64 </html
361
+ 64 </html>
362
+
363
+
364
+
365
+ **ボールドテキスト**
296
366
 
297
367
  ```
298
368
 
299
-
300
-
369
+
370
+
371
+
372
+
301
- ###こちらがfunctions.phpです。
373
+ ###zizai_captcha/check.phpです。
302
-
374
+
303
- ```php
375
+ ```check.php
304
-
305
- //入力値に不正なデータがないかどうかなどをチェックする関数
376
+
306
-
307
- function checkInput($var) {
377
+ function zizai_captcha_check($input_str = NULL,$key_time = NULL){
308
-
378
+
309
- if (is_array($var)) {
379
+ if($input_str === NULL){
380
+
310
-
381
+ if(isset($_POST["zizai_captcha_check"])){
382
+
311
- return array_map('checkInput', $var);
383
+ $input_str = $_POST["zizai_captcha_check"];
312
-
384
+
313
- } else {
385
+ }else{
314
-
315
- if (get_magic_quotes_gpc()) { //magic_quotes_gpc対策
386
+
316
-
317
- $var = stripslashes($var);
387
+ return FALSE;
388
+
389
+ }
318
390
 
319
391
  }
320
392
 
321
- if (preg_match('/\0/', $var)) { //NULLバイト攻撃対策
393
+
322
-
394
+
323
- die('不正な入力です。');
395
+ if($key_time === NULL){
396
+
397
+ if(isset($_POST["zizai_captcha_time"])){
398
+
399
+ $key_time = $_POST["zizai_captcha_time"];
400
+
401
+ }else{
402
+
403
+ return FALSE;
404
+
405
+ }
324
406
 
325
407
  }
326
408
 
409
+
410
+
411
+ mb_language("uni");
412
+
413
+ mb_internal_encoding("utf-8");
414
+
415
+ mb_http_input("auto");
416
+
417
+ mb_http_output("utf-8");
418
+
419
+
420
+
421
+ $input_str = mb_convert_kana($input_str,"r");
422
+
423
+
424
+
425
+ $time = time();
426
+
427
+ $post_t = intval($key_time);
428
+
429
+
430
+
431
+ $config = parse_ini_file(dirname(__FILE__)."/config.ini");
432
+
327
- if (!mb_check_encoding($var, 'UTF-8')) { //文字エンコードの確認
433
+ $seed = parse_ini_file(dirname(__FILE__)."/seed.ini");
434
+
435
+
436
+
328
-
437
+ if($post_t > $time || $post_t < $time - $config["expire"]){
438
+
329
- die('不正な入力です。');
439
+ return FALSE;
330
440
 
331
441
  }
332
442
 
443
+
444
+
445
+ $symbol = array("+","/");
446
+
447
+ $alphabet = array("A","B");
448
+
449
+
450
+
451
+ if($seed["last_updated"] <= $post_t){
452
+
453
+ $seed_str = $seed["new_seed"];
454
+
333
- return $var;
455
+ }else{
456
+
334
-
457
+ $seed_str = $seed["old_seed"];
458
+
335
- }
459
+ }
460
+
461
+
462
+
336
-
463
+ $str = str_replace($symbol,$alphabet,strtoupper(substr(base64_encode(md5($post_t.$seed_str,TRUE)),0,$config["characters_count"])));
464
+
465
+
466
+
467
+ if(strtoupper($input_str) !== $str){
468
+
469
+ return FALSE;
470
+
337
- }
471
+ }
472
+
473
+
474
+
475
+ return TRUE;
476
+
477
+ }
478
+
479
+ ?>
338
480
 
339
481
  ```
340
-
341
- 操作が酷くて、申し訳ありません。
342
-
343
-
344
-
345
- ###zizai_captcha/check.phpです。
346
-
347
- ```check.php
348
-
349
- function zizai_captcha_check($input_str = NULL,$key_time = NULL){
350
-
351
- if($input_str === NULL){
352
-
353
- if(isset($_POST["zizai_captcha_check"])){
354
-
355
- $input_str = $_POST["zizai_captcha_check"];
356
-
357
- }else{
358
-
359
- return FALSE;
360
-
361
- }
362
-
363
- }
364
-
365
-
366
-
367
- if($key_time === NULL){
368
-
369
- if(isset($_POST["zizai_captcha_time"])){
370
-
371
- $key_time = $_POST["zizai_captcha_time"];
372
-
373
- }else{
374
-
375
- return FALSE;
376
-
377
- }
378
-
379
- }
380
-
381
-
382
-
383
- mb_language("uni");
384
-
385
- mb_internal_encoding("utf-8");
386
-
387
- mb_http_input("auto");
388
-
389
- mb_http_output("utf-8");
390
-
391
-
392
-
393
- $input_str = mb_convert_kana($input_str,"r");
394
-
395
-
396
-
397
- $time = time();
398
-
399
- $post_t = intval($key_time);
400
-
401
-
402
-
403
- $config = parse_ini_file(dirname(__FILE__)."/config.ini");
404
-
405
- $seed = parse_ini_file(dirname(__FILE__)."/seed.ini");
406
-
407
-
408
-
409
- if($post_t > $time || $post_t < $time - $config["expire"]){
410
-
411
- return FALSE;
412
-
413
- }
414
-
415
-
416
-
417
- $symbol = array("+","/");
418
-
419
- $alphabet = array("A","B");
420
-
421
-
422
-
423
- if($seed["last_updated"] <= $post_t){
424
-
425
- $seed_str = $seed["new_seed"];
426
-
427
- }else{
428
-
429
- $seed_str = $seed["old_seed"];
430
-
431
- }
432
-
433
-
434
-
435
- $str = str_replace($symbol,$alphabet,strtoupper(substr(base64_encode(md5($post_t.$seed_str,TRUE)),0,$config["characters_count"])));
436
-
437
-
438
-
439
- if(strtoupper($input_str) !== $str){
440
-
441
- return FALSE;
442
-
443
- }
444
-
445
-
446
-
447
- return TRUE;
448
-
449
- }
450
-
451
- ?>
452
-
453
- ```

6

コードの追加

2019/09/14 06:29

投稿

sawara29
sawara29

スコア12

test CHANGED
File without changes
test CHANGED
@@ -339,3 +339,115 @@
339
339
  ```
340
340
 
341
341
  操作が酷くて、申し訳ありません。
342
+
343
+
344
+
345
+ ###zizai_captcha/check.phpです。
346
+
347
+ ```check.php
348
+
349
+ function zizai_captcha_check($input_str = NULL,$key_time = NULL){
350
+
351
+ if($input_str === NULL){
352
+
353
+ if(isset($_POST["zizai_captcha_check"])){
354
+
355
+ $input_str = $_POST["zizai_captcha_check"];
356
+
357
+ }else{
358
+
359
+ return FALSE;
360
+
361
+ }
362
+
363
+ }
364
+
365
+
366
+
367
+ if($key_time === NULL){
368
+
369
+ if(isset($_POST["zizai_captcha_time"])){
370
+
371
+ $key_time = $_POST["zizai_captcha_time"];
372
+
373
+ }else{
374
+
375
+ return FALSE;
376
+
377
+ }
378
+
379
+ }
380
+
381
+
382
+
383
+ mb_language("uni");
384
+
385
+ mb_internal_encoding("utf-8");
386
+
387
+ mb_http_input("auto");
388
+
389
+ mb_http_output("utf-8");
390
+
391
+
392
+
393
+ $input_str = mb_convert_kana($input_str,"r");
394
+
395
+
396
+
397
+ $time = time();
398
+
399
+ $post_t = intval($key_time);
400
+
401
+
402
+
403
+ $config = parse_ini_file(dirname(__FILE__)."/config.ini");
404
+
405
+ $seed = parse_ini_file(dirname(__FILE__)."/seed.ini");
406
+
407
+
408
+
409
+ if($post_t > $time || $post_t < $time - $config["expire"]){
410
+
411
+ return FALSE;
412
+
413
+ }
414
+
415
+
416
+
417
+ $symbol = array("+","/");
418
+
419
+ $alphabet = array("A","B");
420
+
421
+
422
+
423
+ if($seed["last_updated"] <= $post_t){
424
+
425
+ $seed_str = $seed["new_seed"];
426
+
427
+ }else{
428
+
429
+ $seed_str = $seed["old_seed"];
430
+
431
+ }
432
+
433
+
434
+
435
+ $str = str_replace($symbol,$alphabet,strtoupper(substr(base64_encode(md5($post_t.$seed_str,TRUE)),0,$config["characters_count"])));
436
+
437
+
438
+
439
+ if(strtoupper($input_str) !== $str){
440
+
441
+ return FALSE;
442
+
443
+ }
444
+
445
+
446
+
447
+ return TRUE;
448
+
449
+ }
450
+
451
+ ?>
452
+
453
+ ```

5

画面の修正

2019/09/14 06:10

投稿

sawara29
sawara29

スコア12

test CHANGED
File without changes
test CHANGED
@@ -16,7 +16,9 @@
16
16
 
17
17
  どなたか、アドバイスをいただけないでしょうか?。
18
18
 
19
+
20
+
19
- これは、入力form1.phpのコードです。
21
+ ###これは、入力form1.phpのコードです。
20
22
 
21
23
  ```phpsession_start();
22
24
 
@@ -222,9 +224,9 @@
222
224
 
223
225
  }
224
226
 
225
- ここからは、HTMLのコードです。
227
+
226
-
228
+
227
- ```html
229
+ ```###html
228
230
 
229
231
  ```ここに言語を入力32 <dt>お名前</dt>
230
232
 
@@ -290,54 +292,50 @@
290
292
 
291
293
  63 </body>
292
294
 
293
- 64 </htmlード
295
+ 64 </html
294
296
 
295
297
  ```
296
298
 
299
+
300
+
301
+ ###こちらがfunctions.phpです。
302
+
297
- コード
303
+ ```php
304
+
305
+ //入力値に不正なデータがないかどうかなどをチェックする関数
306
+
307
+ function checkInput($var) {
308
+
309
+ if (is_array($var)) {
310
+
311
+ return array_map('checkInput', $var);
312
+
313
+ } else {
314
+
315
+ if (get_magic_quotes_gpc()) { //magic_quotes_gpc対策
316
+
317
+ $var = stripslashes($var);
318
+
319
+ }
320
+
321
+ if (preg_match('/\0/', $var)) { //NULLバイト攻撃対策
322
+
323
+ die('不正な入力です。');
324
+
325
+ }
326
+
327
+ if (!mb_check_encoding($var, 'UTF-8')) { //文字エンコードの確認
328
+
329
+ die('不正な入力です。');
330
+
331
+ }
332
+
333
+ return $var;
334
+
335
+ }
336
+
337
+ }
298
338
 
299
339
  ```
300
340
 
301
- ```function.php
302
-
303
- functions.phpです。
304
-
305
- ```php
306
-
307
- ``````ここに言語を入力//入力値に不正なデータがないかどうかなどをチェックする関数
308
-
309
- function checkInput($var) {
310
-
311
- if (is_array($var)) {
312
-
313
- return array_map('checkInput', $var);
314
-
315
- } else {
316
-
317
- if (get_magic_quotes_gpc()) { //magic_quotes_gpc対策
318
-
319
- $var = stripslashes($var);
320
-
321
- }
322
-
323
- if (preg_match('/\0/', $var)) { //NULLバイト攻撃対策
324
-
325
- die('不正な入力です。');
326
-
327
- }
328
-
329
- if (!mb_check_encoding($var, 'UTF-8')) { //文字エンコードの確認
330
-
331
- die('不正な入力です。');
332
-
333
- }
334
-
335
- return $var;
336
-
337
- }
338
-
339
- }ード
340
-
341
- ```
342
-
343
341
  操作が酷くて、申し訳ありません。

4

画面の修正

2019/09/14 05:48

投稿

sawara29
sawara29

スコア12

test CHANGED
File without changes
test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  入力ページのまま、件名と画像認証のエラーが出ます。
12
12
 
13
- エラーは、subjectの'件名は必須項目です。'と画像認証の'確認キーワードは8文字で入力して下さい。';です。
13
+ エラーは、subjectの'**件名は必須項目です。**'と画像認証の'**確認キーワードは8文字で入力して下さい。';です。**
14
14
 
15
15
 
16
16
 
@@ -18,7 +18,7 @@
18
18
 
19
19
  これは、入力form1.phpのコードです。
20
20
 
21
- session_start();
21
+ ```phpsession_start();
22
22
 
23
23
 
24
24
 
@@ -224,6 +224,8 @@
224
224
 
225
225
  ここからは、HTMLのコードです。
226
226
 
227
+ ```html
228
+
227
229
  ```ここに言語を入力32 <dt>お名前</dt>
228
230
 
229
231
  33 <dd><label>
@@ -288,12 +290,20 @@
288
290
 
289
291
  63 </body>
290
292
 
291
- 64 </html
293
+ 64 </htmlード
294
+
292
-
295
+ ```
296
+
293
-
297
+ コード
298
+
299
+ ```
300
+
301
+ ```function.php
294
302
 
295
303
  functions.phpです。
296
304
 
305
+ ```php
306
+
297
307
  ``````ここに言語を入力//入力値に不正なデータがないかどうかなどをチェックする関数
298
308
 
299
309
  function checkInput($var) {
@@ -326,6 +336,8 @@
326
336
 
327
337
  }
328
338
 
329
- }
339
+ }ード
340
+
341
+ ```
330
342
 
331
343
  操作が酷くて、申し訳ありません。

3

画面の修正

2019/09/14 05:25

投稿

sawara29
sawara29

スコア12

test CHANGED
File without changes
test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  どなたか、アドバイスをいただけないでしょうか?。
18
18
 
19
-
19
+ これは、入力form1.phpのコードです。
20
20
 
21
21
  session_start();
22
22
 
@@ -222,6 +222,8 @@
222
222
 
223
223
  }
224
224
 
225
+ ここからは、HTMLのコードです。
226
+
225
227
  ```ここに言語を入力32 <dt>お名前</dt>
226
228
 
227
229
  33 <dd><label>
@@ -288,6 +290,10 @@
288
290
 
289
291
  64 </html
290
292
 
293
+
294
+
295
+ functions.phpです。
296
+
291
297
  ``````ここに言語を入力//入力値に不正なデータがないかどうかなどをチェックする関数
292
298
 
293
299
  function checkInput($var) {

2

該当ソースコードの追加

2019/09/14 05:14

投稿

sawara29
sawara29

スコア12

test CHANGED
File without changes
test CHANGED
@@ -286,8 +286,40 @@
286
286
 
287
287
  63 </body>
288
288
 
289
- 64 </html>
289
+ 64 </html
290
+
290
-
291
+ ``````ここに言語を入力//入力値に不正なデータがないかどうかなどをチェックする関数
292
+
293
+ function checkInput($var) {
294
+
295
+ if (is_array($var)) {
296
+
297
+ return array_map('checkInput', $var);
298
+
299
+ } else {
300
+
301
+ if (get_magic_quotes_gpc()) { //magic_quotes_gpc対策
302
+
303
+ $var = stripslashes($var);
304
+
291
- ード
305
+ }
306
+
292
-
307
+ if (preg_match('/\0/', $var)) { //NULLバイト攻撃対策
308
+
309
+ die('不正な入力です。');
310
+
293
- ```
311
+ }
312
+
313
+ if (!mb_check_encoding($var, 'UTF-8')) { //文字エンコードの確認
314
+
315
+ die('不正な入力です。');
316
+
317
+ }
318
+
319
+ return $var;
320
+
321
+ }
322
+
323
+ }
324
+
325
+ 操作が酷くて、申し訳ありません。

1

該当ソースコードの追加

2019/09/14 05:09

投稿

sawara29
sawara29

スコア12

test CHANGED
File without changes
test CHANGED
@@ -221,3 +221,73 @@
221
221
  display('form2_view.php', $data);
222
222
 
223
223
  }
224
+
225
+ ```ここに言語を入力32 <dt>お名前</dt>
226
+
227
+ 33 <dd><label>
228
+
229
+ 34 <input type="text" name="name" value="<?php echo $name; ?>" size="50" />
230
+
231
+ 35 </label></dd>
232
+
233
+ 36 <dt>e-mail</dt>
234
+
235
+ 37 <dd><label>
236
+
237
+ 38 <input type="text" name="email" value="<?php echo $email; ?>" size="50" />
238
+
239
+ 39 </label></dd>
240
+
241
+ 40 <dt>件名</dt>
242
+
243
+ 41 <dd><label>
244
+
245
+ 42 <input type="text" nane="subject" value="<?php echo $subject; ?>" size="50 " />
246
+
247
+ 43 </label></dd>
248
+
249
+ 44 <dt>内容</dt>
250
+
251
+ 45 <dd><label>
252
+
253
+ 46 <textarea name="body" cols="50" rows="10"><?php echo $body; ?></textarea>
254
+
255
+ 47 </label></dd>
256
+
257
+ 48
258
+
259
+ 49 <script src="zizai_captcha/captcha.php" type="text/javascript"></script>
260
+
261
+ 50 <script>zizai_captcha_show();</script><br>
262
+
263
+ 51
264
+
265
+ 52 <input type="submit" valeu="確認画面へ" />
266
+
267
+ 53 </p>
268
+
269
+ 54
270
+
271
+ 55 <input type="hidden" name="ticket" value="<?php echo $ticket; ?>" />
272
+
273
+ 56
274
+
275
+ 57 </form>
276
+
277
+ 58 </div>
278
+
279
+ 59 <p class="copy">
280
+
281
+ 60 &copy; 2010 PHP for Web Designer. All rights reserved.
282
+
283
+ 61 </p>
284
+
285
+ 62 </div>
286
+
287
+ 63 </body>
288
+
289
+ 64 </html>
290
+
291
+ ード
292
+
293
+ ```