PHP で $_GET $_POST で Notice: Undefined index: が出る
2009年10月07日
以下のような記述が .php 内にあった場合、Notice: Undefined index: id in /Users/foo/public_html/hoge.php on line n
と表示される。
$id = $_GET['id'];
これは、外部からの汚染された引数が渡されたことが原因なので、htmlspecialchars
を使ってサニタイズすると警告が表示されなくなる。
$id = htmlspecialchars(@$_GET['id']);
上の方法では、@
を使ってエラー出力を抑制しているだけ。
$_GET['id']
の値が初期化されていないためにエラーとなっているので、isset
で初期化チェックをおこなう。
$id = isset($_GET['id']) ? htmlspecialchars($_GET['id']) : null;
修正:2011/6/1