PHPチュートリアル

PHPホーム PHPイントロ PHPインストール PHP構文 PHPコメント PHP変数 PHPエコー/印刷 PHPデータ型 PHP文字列 PHP番号 PHP数学 PHP定数 PHP演算子 PHP If ... Else ... Elseif PHPスイッチ PHPループ PHP関数 PHP配列 PHPスーパーグローバル PHP正規表現

PHPフォーム

PHPフォーム処理 PHPフォームの検証 PHPフォームが必要 PHPフォームのURL / Eメール PHPフォームの完了

PHP Advanced

PHPの日付と時刻 PHPインクルード PHPファイルの処理 PHPファイルのオープン/読み取り PHPファイルの作成/書き込み PHPファイルのアップロード PHPクッキー PHPセッション PHPフィルター PHPフィルターアドバンスト PHPコールバック関数 PHP JSON PHPの例外

PHPOOP _

PHPOOPとは PHPクラス/オブジェクト PHPコンストラクター PHPデストラクタ PHPアクセス修飾子 PHPの継承 PHP定数 PHP抽象クラス PHPインターフェース PHPの特性 PHP静的メソッド PHPの静的プロパティ PHP名前空間 PHPIterables

MySQLデータベース

MySQLデータベース MySQLコネクト MySQL Create DB MySQLテーブルの作成 MySQLの挿入データ MySQLは最後のIDを取得します MySQL Insert Multiple MySQLを準備しました MySQL Select Data MySQL Where MySQL Order By MySQLデータの削除 MySQLアップデートデータ MySQL制限データ

PHP XML

PHPXMLパーサー PHPSimpleXMLパーサー PHPSimpleXML-取得 PHP XMLExpat PHP XML DOM

PHP -AJAX

AJAXイントロ AJAX PHP AJAXデータベース AJAX XML AJAXライブ検索 AJAXポール

PHPの

PHPの例 PHPコンパイラ PHPクイズ PHP演習 PHP証明書

PHPリファレンス

PHPの概要 PHP配列 PHPカレンダー PHPの日付 PHPディレクトリ PHPエラー PHP例外 PHPファイルシステム PHPフィルター PHP FTP PHP JSON PHPキーワード PHP Libxml PHPメール PHP数学 PHPその他 PHP MySQLi PHPネットワーク PHP出力制御 PHP正規表現 PHP SimpleXML PHPストリーム PHP文字列 PHP変数の処理 PHPXMLパーサー PHP Zip PHPタイムゾーン

PHPフィルター


データの検証=データが適切な形式であるかどうかを判断します。

データのサニタイズ=データから不正な文字を削除します。


PHPフィルター拡張機能

PHPフィルターは、外部入力を検証およびサニタイズするために使用されます。

PHPフィルター拡張機能には、ユーザー入力のチェックに必要な多くの機能があり、データ検証をより簡単かつ迅速に行えるように設計されています。

このfilter_list()関数を使用して、PHPフィルター拡張機能が提供するものをリストできます。

<table>
  <tr>
    <td>Filter Name</td>
    <td>Filter ID</td>
  </tr>
  <?php
  foreach (filter_list() as $id =>$filter) {
    echo '<tr><td>' . $filter . '</td><td>' . filter_id($filter) . '</td></tr>';
  }
  ?>
</table>

なぜフィルターを使用するのですか?

多くのWebアプリケーションは外部入力を受け取ります。外部入力/データは次のとおりです。

  • フォームからのユーザー入力
  • クッキー
  • Webサービスデータ
  • サーバー変数
  • データベースクエリの結果

常に外部データを検証する必要があります!
送信されたデータが無効な場合、セキュリティ上の問題が発生し、ウェブページが破損する可能性があります。
PHPフィルターを使用することで、アプリケーションが正しい入力を確実に取得できるようになります。



PHP filter_var()関数

このfilter_var()関数は、データの検証とサニタイズの両方を行います。

このfilter_var()関数は、指定されたフィルターを使用して単一の変数をフィルター処理します。2つのデータが必要です。

  • チェックしたい変数
  • 使用する小切手の種類

文字列をサニタイズする

次の例では、filter_var()関数を使用して文字列からすべてのHTMLタグを削除します。

<?php
$str = "<h1>Hello World!</h1>";
$newstr = filter_var($str, FILTER_SANITIZE_STRING);
echo $newstr;
?>

整数を検証する

次の例では、filter_var()関数を使用して、変数$ intが整数であるかどうかを確認します。$ intが整数の場合、以下のコードの出力は「整数は有効です」になります。$ intが整数でない場合、出力は次のようになります。「整数が無効です」:

<?php
$int = 100;

if (!filter_var($int, FILTER_VALIDATE_INT) === false) {
  echo("Integer is valid");
} else {
  echo("Integer is not valid");
}
?>

ヒント:filter_var()と0の問題

上記の例では、$ intが0に設定されている場合、上記の関数は「整数が無効です」を返します。この問題を解決するには、以下のコードを使用します。

<?php
$int = 0;

if (filter_var($int, FILTER_VALIDATE_INT) === 0 || !filter_var($int, FILTER_VALIDATE_INT) === false) {
  echo("Integer is valid");
} else {
  echo("Integer is not valid");
}
?>

IPアドレスを検証する

次の例では、filter_var()関数を使用して、変数$ ipが有効なIPアドレスであるかどうかを確認します。

<?php
$ip = "127.0.0.1";

if (!filter_var($ip, FILTER_VALIDATE_IP) === false) {
  echo("$ip is a valid IP address");
} else {
  echo("$ip is not a valid IP address");
}
?>

電子メールアドレスのサニタイズと検証

次の例では、このfilter_var()関数を使用して、最初に$ email変数からすべての不正な文字を削除し、次にそれが有効な電子メールアドレスであるかどうかを確認します。

<?php
$email = "[email protected]";

// Remove all illegal characters from email
$email = filter_var($email, FILTER_SANITIZE_EMAIL);

// Validate e-mail
if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
  echo("$email is a valid email address");
} else {
  echo("$email is not a valid email address");
}
?>

URLのサニタイズと検証

次の例では、このfilter_var()関数を使用して、最初にURLからすべての不正な文字を削除し、次に$ urlが有効なURLであるかどうかを確認します。

<?php
$url = "https://www.w3schools.com";

// Remove all illegal characters from a url
$url = filter_var($url, FILTER_SANITIZE_URL);

// Validate url
if (!filter_var($url, FILTER_VALIDATE_URL) === false) {
  echo("$url is a valid URL");
} else {
  echo("$url is not a valid URL");
}
?>

完全なPHPフィルターリファレンス

すべてのフィルター関数の完全なリファレンスについては、完全な PHPフィルターリファレンスを参照してください。各フィルターをチェックして、使用可能なオプションとフラグを確認してください。

リファレンスには、各関数の簡単な説明と使用例が含まれています。