回答編集履歴

1

バッククォート抜け

2025/01/15 12:36

投稿

otn
otn

スコア85989

test CHANGED
@@ -1,7 +1,7 @@
1
1
  1.入力値に`htmlspecialchars`を使うのは間違い。おそらく参考にしたのが初心者の書いたコードということでしょう。その参考コードを捨てて参考にしないことが最初にやるべきことです。「ウェブアプリの脆弱性」が言われ始めた初期にこういう間違いコードが広まってた気がします。
2
2
 
3
3
  2.`strlen`関数は文字数を得る関数ではないです。バイト数を得る関数です。
4
- UTF-8でしょうから、`strlen`が10を越えるとエラーだというなら、`strlen("山田誠")`は`9で、`strlen("山田一郎")`は`12`なので日本人の大部分の人が駄目です。文字数は`mb_strlen`ですが、それに変えたとしても文字数10以下だけというと欧米人はほとんど駄目でしょうね。`Donald John Trump`で17文字。
4
+ UTF-8でしょうから、`strlen`が10を越えるとエラーだというなら、`strlen("山田誠")`は`9`で、`strlen("山田一郎")`は`12`なので日本人の大部分の人が駄目です。文字数は`mb_strlen`ですが、それに変えたとしても文字数10以下だけというと欧米人はほとんど駄目でしょうね。`Donald John Trump`で17文字。
5
5
  「10文字を超える人は相手にしなくていい」前提でない限り、条件を見直すべきでしょう。実用プログラムでなくプログラミング演習課題なら場合によってはありですが、真に受ける受講生がいると困るので、止めた方が良いですね。
6
6
 
7
7
  3.`if(trim($name) === '' || trim($name) === " " && strlen($name) > 10){`は意味不明。