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スーパーグローバルの$ _GETと$ _POSTは、フォームデータの収集に使用されます。


PHP-シンプルなHTMLフォーム

次の例は、2つの入力フィールドと送信ボタンを持つ単純なHTMLフォームを示しています。

<html>
<body>

<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>

</body>
</html>

ユーザーが上記のフォームに入力して送信ボタンをクリックすると、フォームデータが処理のために「welcome.php」という名前のPHPファイルに送信されます。フォームデータはHTTPPOSTメソッドで送信されます。

送信されたデータを表示するには、すべての変数をエコーするだけです。「welcome.php」は次のようになります。

<html>
<body>

Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>

</body>
</html>

出力は次のようになります。

Welcome John
Your email address is [email protected]

HTTP GETメソッドを使用しても、同じ結果を得ることができます。

<html>
<body>

<form action="welcome_get.php" method="get">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>

</body>
</html>

「welcome_get.php」は次のようになります。

<html>
<body>

Welcome <?php echo $_GET["name"]; ?><br>
Your email address is: <?php echo $_GET["email"]; ?>

</body>
</html>

上記のコードは非常に単純です。ただし、最も重要なことが欠けています。スクリプトを悪意のあるコードから保護するには、フォームデータを検証する必要があります。

PHPフォームを処理するときは、セキュリティを考慮してください。

このページにはフォームの検証は含まれていません。フォームデータを送信および取得する方法を示しているだけです。

ただし、次のページでは、セキュリティを念頭に置いてPHPフォームを処理する方法を示します。フォームをハッカーやスパマーから保護するには、フォームデータを適切に検証することが重要です。



GETとPOST

GETとPOSTの両方で配列が作成されます(例:array(key1 => value1、key2 => value2、key3 => value3、...))。この配列は、キーと値のペアを保持します。ここで、キーはフォームコントロールの名前であり、値はユーザーからの入力データです。

GETとPOSTはどちらも$ _GETと$ _POSTとして扱われます。これらはスーパーグローバルです。つまり、スコープに関係なく常にアクセス可能であり、特別なことをしなくても、任意の関数、クラス、またはファイルからアクセスできます。

$ _GETは、URLパラメーターを介して現在のスクリプトに渡される変数の配列です。

$ _POSTは、HTTPPOSTメソッドを介して現在のスクリプトに渡される変数の配列です。


いつGETを使用しますか?

GETメソッドを使用してフォームから送信された情報は、すべてのユーザーに表示されます(すべての変数名と値がURLに表示されます)。GETには、送信する情報の量にも制限があります。制限は約2000文字です。ただし、変数はURLに表示されるため、ページをブックマークすることができます。これは場合によっては便利です。

GETは、機密性の低いデータの送信に使用できます。

注: GETは、パスワードやその他の機密情報の送信には絶対に使用しないでください。


POSTを使用するのはいつですか?

POSTメソッドを使用してフォームから送信された情報は他のユーザーには表示されず (すべての名前/値はHTTPリクエストの本文に埋め込まれます)、送信する情報の量に制限はありません。

さらに、POSTは、ファイルをサーバーにアップロードする際のマルチパートバイナリ入力のサポートなどの高度な機能をサポートします。

ただし、変数はURLに表示されないため、ページをブックマークすることはできません。

開発者は、フォームデータの送信にPOSTを好みます。

次に、PHPフォームを安全な方法で処理する方法を見てみましょう。


PHP演習

エクササイズで自分をテストする

エクササイズ:

下の白いセクションのフォームが送信された場合、welcome.phpで「名」フィールドから値を出力するにはどうすればよいですか?

<form action="welcome.php" method="get"> First name: <input type="text" name="fname"> </form>
<html> <body> Welcome <?php echo ; ?> </body> </html>