名前入力欄を作り、そこに入力された値を別のファイルに送って、名前が入力されていた場合は"ようこそ〇〇さん"と表示、そして入力されていない場合は"名前を入力してください"と表示するコードを書きました。
送る時のコードはinputで枠を作って送り先をformのactionで指定するだけだったので大丈夫だと思うのですが、受け取る時のコードでエスケープの処理やfilter_inputという関数をあまり使い慣れていないので合っているかどうか見て頂けないでしょうか?
コメントを書いて見やすくしました。
一応これでエラーは出ず動きました。
PHP
1<?php 2// エスケープの処理をしました 3function h($str) { 4 return htmlspecialchars($str, ENT_QUOTES, 'UTF-8'); 5} 6 7// 受け取った名前(my_name)を変数に入れました 8$my_name = filter_input(INPUT_POST, 'my_name'); 9 10// もし名前が入力されていればそれを出力、なければ名前を入力するよう表示しました 11if ($my_name) { 12 echo 'ようこそ' . h($my_name) . 'さん'; 13} else { 14 echo '名前を入力してください'; 15} 16?>
質問ではなくデバッグ依頼ですよ。非推奨です。
これはデバッグ依頼なのですか?関数の使い方等がわからなかったので確認をしたかったのですがそれは非推奨なのでしょうか?
>合っているかどうか見て頂けないでしょうか?
という聞き方です。
使い方はphpマニュアルに書いてありますし、それを見てやってみて何がどうわからないかを書かないと。
「動かせばわかることをなぜわざわざ他人に聞くのか」という印象しかないので。
なるほど。。
確かに動かしてみて動けばそれで正しいかもしれませんが、エスケープ処理にしても変数に入れない方がいい等何かしら自分で気づけていないことを教えてもらえるかもしれないという思いがあったのですが、ちょっと使い方を誤っていたようです。申し訳ありませんでした。以降気を付けます。
質問修正して内容調整すれば良いかと。
回答2件
あなたの回答
tips
プレビュー