回答編集履歴

3

見直し

2020/02/11 06:47

投稿

退会済みユーザー
test CHANGED
@@ -42,7 +42,7 @@
42
42
 
43
43
  // パスワードを設定する。
44
44
 
45
- $pass = 1234;
45
+ $pass = '1234'; // 文字列として持つことを意識する
46
46
 
47
47
  // パスワードを受け取る
48
48
 
@@ -64,7 +64,7 @@
64
64
 
65
65
  // 値が$form_passと等しいか評価する
66
66
 
67
- if ($form_pass === $pass) {
67
+ if ($form_pass === $pass) { // 文字列として比較して一致したら
68
68
 
69
69
  header("Location: /test.php");
70
70
 

2

見直し

2020/02/11 06:47

投稿

退会済みユーザー
test CHANGED
@@ -25,3 +25,115 @@
25
25
  }
26
26
 
27
27
  ```
28
+
29
+
30
+
31
+ で、全部書き改めてみた。あくまで机上のコードで動かしてないので、
32
+
33
+ 突っ込みどころがあればコメントよろしく。
34
+
35
+ ```php
36
+
37
+ <?php
38
+
39
+ $data = [];
40
+
41
+ $err_msg = [];
42
+
43
+ // パスワードを設定する。
44
+
45
+ $pass = 1234;
46
+
47
+ // パスワードを受け取る
48
+
49
+ //$form_pass = $_REQUEST["pass"];
50
+
51
+ if (isset($_POST["pass"])) {
52
+
53
+ $form_pass = $_POST["pass"];
54
+
55
+ }
56
+
57
+ else {
58
+
59
+ $form_pass = '';
60
+
61
+
62
+
63
+ }
64
+
65
+ // 値が$form_passと等しいか評価する
66
+
67
+ if ($form_pass === $pass) {
68
+
69
+ header("Location: /test.php");
70
+
71
+ exit;
72
+
73
+ }
74
+
75
+ $data['pass'] = $form_pass;
76
+
77
+ ?>
78
+
79
+ <html>
80
+
81
+ <body>
82
+
83
+ <main>
84
+
85
+ <?php
86
+
87
+ if (empty($data['pass'])) { // ほんとうにemptyでいいのか? 0 でも empty なんだけどな
88
+
89
+ $err_msg[] = 'miss!&nbsp;Try again.';
90
+
91
+ }
92
+
93
+ elseif (!preg_match( '/^[0-9a-z-]+$/', $data['pass'])) {
94
+
95
+ $err_msg[] = 'Please type using half-width characters.';
96
+
97
+ }
98
+
99
+ elseif (4 < mb_strlen($data['pass'])) {
100
+
101
+ $err_msg[] = 'Please input 4 characters.';
102
+
103
+ }
104
+
105
+ else {
106
+
107
+ $err_msg[] = 'miss!&nbsp;Try again.';
108
+
109
+ }
110
+
111
+
112
+
113
+ if (count(err_msg) >= 1) {
114
+
115
+ $msg = implode('<br />', $err_msg);
116
+
117
+ echo <<<EOT;
118
+
119
+ <p class="align-center">{$msg}</p>
120
+
121
+ <ul class="actions special">
122
+
123
+ <li><a id="btn_home" href="javascript:history.back();" class="button">Back</a></li>
124
+
125
+ </ul>
126
+
127
+ EOT;
128
+
129
+ }
130
+
131
+ ?>
132
+
133
+ </main>
134
+
135
+ </body>
136
+
137
+ </html>
138
+
139
+ ```

1

見直し

2020/02/11 06:32

投稿

退会済みユーザー
test CHANGED
@@ -8,7 +8,11 @@
8
8
 
9
9
  ```php
10
10
 
11
+ $data = []; // 初期化
12
+
13
+ // ...
14
+
11
- if (isset($_POST['pass'])) {
15
+ if (isset($_POST['pass'])) { // 存在確認
12
16
 
13
17
  $data['pass'] = $_POST['pass'];
14
18
 
@@ -16,7 +20,7 @@
16
20
 
17
21
  else {
18
22
 
19
- $data['pass'] = '';
23
+ $data['pass'] = ''; // データがないときにどうするかは自分で決める
20
24
 
21
25
  }
22
26