web関連
【PHP】$_GETとかを使うときにfilter_inputを使ったほうがいいらしい
スーパーグローバル変数である$_GETや$_POSTを使う時にfilter_inputでフィルタリングした方がいいらしいので備忘録
filter_inputを使ったほうがいい理由
まず、スーパーグローバル変数である$_GETを使った方法
if ($_GET['ja'] === 'test') {
echo $_GET['ja'] . 'だよ';
}
これだと値がない時にnoticeが表示される
じゃあ、isset()
を使ってあるかチェックすればいいじゃんということで書き換え
if (isset($_GET['ja'])) {
if ($_GET['ja'] === 'test') {
echo $_GET['ja'] . 'だよ';
}
}
可読性が下がった気がするなぁ…
そこでfilter_input()
を使ってスーパーグローバル変数をフィルタリングする!
if (filter_input(INPUT_GET, 'ja') === 'test') {
echo filter_input(INPUT_GET, 'ja') . 'だよ';
}
うん、シンプル!
noticeも出ないしスーパーグローバル変数はセキュリティ的にラッパー関数とかを経由で使ったほうがいいらしい
$_GET['ja'] = '値'
って感じで代入できちゃったりするからとのこと
Memo:今回はフィルタの設定デフォルトでフィルタリングしてない
否定の条件文でif ($_GET['ja'] == !'test') {…}みたいな書き方してて上手くいかないなーって思って調べた
if ($_GET['ja'] !== 'test') {…}こうだね
javascriptとごっちゃになってたわ