フォームで考えられるバグを防ぐ
一つ前の記事ではフォームで入力された値を
$_GET["a"]を用いて、表示する記述を書きました。
ただ、このままではタグなども入力が出来、
悪意のある情報を埋め込まれる可能性があります。
それを防ぐためにhtmlspecialcharsを用います。
$input = htmlspecialchars($_GET["a"], ENT_QUOTES);
print isset($_GET["a"]) ? $input . "だしん" : "何かしゃべって!";
$inputという変数に代入してます。
送信文字列のタグを無効化するhtmlspecialchars関数
第一引数には変換したい入力文字列を入れてます。
第二引数には変換パターンを入れてます。詳しい説明は下記にある参考URLをご覧ください。
空白のまま送信を押しても「だしん」が表示される
上記のコードの記述でタグを入力されても、
有効化されずに文字列として表示される処理を完了しました。
しかし、空入力のまま送信ボタンを押すと「だしん」と表示されてしまいます。
何か文字列が入力されたら「だしん」と語尾に表示したいように設定します。
$input = htmlspecialchars($_GET["a"], ENT_QUOTES); print isset($_GET["a"]) && $_GET["a"] != "" ? $input . "だしん" : "何かしゃべって!";
&&はrubyでも出てきた用法かと思います。AかつBの時と条件を加えます。
!= は否定の時の用法ですね。この場合だと空ではない時という条件です。