English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP基本教程

PHP上級教程

PHP & MySQL

PHPリファレンスマニュアル

PHP フォームの処理

このチュートリアルでは、PHPの超グローバル変数$_GET、$_POST、$_REQUESTを使用して、フォームを通じて提出されたユーザー入力を収集する方法を学びます。

簡単な連絡フォームを作成する

このチュートリアルでは、ユーザーがコメントやフィードバックを入力し、それをPHPでブラウザに表示する簡単なHTML連絡フォームを作成します。

お気に入りのコードエディタを開き、新しいPHPファイルを作成します。次のコードを入力し、このファイルを「contact”と名付けます。-form.php“はプロジェクトのルートディレクトリにあります。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8>
    <title>連絡表</title>
</head>
    <h2>お問い合わせ</h2>
    このテーブルを記入して送信してください。</p>
    <form action="process-form.html" method="post">
        <p>
            <label for="inputName">名前:<sup>*</sup></label>
            <input type="text" name="name" id="inputName">
        </p>
        <p>
            <label for="inputEmail">メール:<sup>*</sup></label>
            <input type="text" name="email" id="inputEmail">
        </p>
        <p>
            <label for="inputSubject">件名:</label>
            <input type="text" name="subject" id="inputSubject">
        </p>
        <p>
            <label for="inputComment">内容:<sup>*</sup></label>
            <textarea name="message" id="inputComment" rows="5" cols="30"></textarea>
        </p>
        <input type="submit" value="提交">
        <input type="reset" value="リセット">
    </form>
</html>

コードの使い方

注意、<form>タグの開始部分には2つの属性があります:

  • action属性はPHPファイル「process」を参照しています。-ユーザーが「提交」ボタンを押してフォームを提出したとき、このファイルはフォームに入力されたデータを受け取ります。

  • method属性は、ブラウザがどのようにしてデータを送信するかを指示します。POSTメソッドフォームデータを送信する。

フォーム内の残りの要素はユーザー入力を受け入れる基本的なフォームコントロールです。HTMLフォーム要素に関する更多信息は、以下を参照してください。HTMLフォームチュートリアル。

PHPを使用してフォームデータをキャプチャする方法

特定のフォームフィールドの値にアクセスするには、以下のスーパーグローバル変数を使用できます。これらの変数はスクリプトのすべての作用域で利用可能です。

スーパーグローバル変数説明
$_GETGETメソッド(URLパラメータとして)を使用してフォームに送信されたすべてのフィールド名と値のリストを含みます。
$_POSTPOSTメソッドを使用してフォームに送信されたすべてのフィールド名と値のリスト(データがURLに表示されません)を含みます。
$_REQUESTに含まれる$_GETおよび$_POST変数の値と$_COOKIEスーパーグローバル変数の値。

ユーザーが「提交」ボタンをクリックして上記の連絡フォームを提出すると、フォームデータがサーバー上の「 process-form.php”ファイルで処理されます。ユーザーが提出した情報をキャプチャして、ブラウザに表示するだけです。

“ process-form.php”ファイルのPHPコードは以下の通りです:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8>
    <title>連絡表</title>
</head>
    <h1>ありがとう</h1>
    <p>あなたが提出した情報:</p>
    <ol>
        <li><em>Name:</em> <?php echo $_POST["name"]?></li>
        <li><em>Email:</em> <?php echo $_POST["email"]?></li>
        <li><em>Subject:</em> <?php echo $_POST["subject"]?></li>
        <li><em>Message:</em> <?php echo $_POST["message"]?></li>
    </ol>
</html>

上記のPHPコードは非常にシンプルです。フォームデータがPOSTメソッドで送信されるため、特定のフォームフィールドの名前を$_POSTスーパーグローバル配列に渡して、そのフィールドの値を取得し、echo()文を使用して各フィールドの値を表示できます。

現実世界では、ユーザーの入力を信じることができません。ユーザー入力をフィルタリングするための某种验证を施し、それを使用する前に必要です。次の章では、この連絡フォームデータをクリーンアップして検証し、PHPを使用してメールを送信する方法について学びます。