問題 × 解決策

フォームの未入力チェックの仕方に注意!「isset」ではなく「empty」でチェックしよう。

  • 2020年07月25日
  • PHP

問題

フォームでの必須項目の入力チェックで「isset」を使うと通過してしまう。

解決策

「isset」ではなく「empty」でチェックを行うことで回避できます。

 

必須項目の入力チェック

フォームでの必須項目の入力チェックをphpで行う時、「isset」ではテキストフィールドが通過してしまいます。
なので代わりで「empty」を使うことを推奨します。

「isset」ではなく「empty」でチェックを行います。

フォームから受け取ったPOSTの値がちゃんと入っているかどうかを「isset」ではなく「empty」でチェックを行うことで問題なくチェックすることができます。

「isset」によるチェック

if( isset( $_POST["name"] ) ){
	return true;
}else{
	return false;
}

結果:未入力でも「true」

「empty」によるチェック

if( !empty( $_POST["name"] ) ){
	return true;
}else{
	return false;
}

結果:未入力だと「false」

ここに注意!

  • isset」は変数が存在するかどうかを判定するため、POSTで取得する値は未入力でも空の状態で存在するため、trueを返してしまいます
    empty」は変数が空であるかどうかを判定するので、未入力ならfalseを返してくれます

参考ページ

以下のサイトが、より詳しく解説してくれています。

【PHPの入力値確認ではなぜisset関数ではなくempty関数を使うのか – nicson (@_@) IT漂流記】
http://ohde-eulab.hatenablog.com/entry/2015/01/13/224004

【PHPのisset関数で変数が存在するか確認する方法 | TechAcademyマガジン】
https://techacademy.jp/magazine/11410

コメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

4 × two =

「問題 × 解決策」
月別アーカイブ一覧

「問題 × 解決策」
月別アーカイブ一覧