teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

修正

2020/08/07 05:25

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -23,6 +23,7 @@
23
23
 
24
24
  これだと、$_POSTにnameがある時点で、「"nameを入力してください"」に入りますけど、そういう仕様で問題ないですか?
25
25
  「未入力」なら||(or)ではなく&&(and)条件にすべきではないでしょうか。
26
+ それか||のままで` !isset() || ( isset() && mbstrlen() )`
26
27
 
27
28
  [filter_input()](https://www.php.net/manual/ja/function.filter-input.php)使った方が良さそうに思います。
28
29
 

1

追記

2020/08/07 05:25

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -12,10 +12,20 @@
12
12
 
13
13
  if( isset( $_POST["name"] ) || mb_strlen( ) ){}
14
14
 
15
- if( isset( $_POST["name"] ) || mb_strlen( $_POST["age"] ) === 0 ){}
15
+ if( isset( $_POST["name"] ) || mb_strlen( $_POST["name"] ) === 0 ){}
16
16
 
17
17
 
18
18
  ```
19
19
 
20
20
 
21
- しかし、
21
+ しかし、
22
+ `if( isset( $_POST["name"] ) || mb_strlen( $_POST["name"] ) === 0 ){}`
23
+
24
+ これだと、$_POSTにnameがある時点で、「"nameを入力してください"」に入りますけど、そういう仕様で問題ないですか?
25
+ 「未入力」なら||(or)ではなく&&(and)条件にすべきではないでしょうか。
26
+
27
+ [filter_input()](https://www.php.net/manual/ja/function.filter-input.php)使った方が良さそうに思います。
28
+
29
+ その他:
30
+ ・htmlspecialchars()あてる場所そこじゃダメです。画面出力のところにのみ入れてください。
31
+ ・ exit();そこに書いてしまうと</body>とか出力されませんよ。