PHPフォーム
PHP の $_GET 変数と $_POST 変数は、ユーザー入力などのフォーム内の情報を取得するために使用されます。
PHP フォーム処理
注意すべき重要な点の 1 つは、HTML フォームを処理するときに、PHP は自動的に HTML ページのフォーム要素を PHP スクリプトで利用できるようにすることができるということです。
例 以下の例には、2 つの入力ボックスと送信ボタンを備えた HTML フォームが含まれています。form.html ファイルのコードは次のとおりです:
<html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <form action="welcome.php" method="post"> 名字: <input type="text" name="fname"> 年龄: <input type="text" name="age"> <input type="submit" value="提交"> </form> </body> </html>ユーザーが上記のフォームに記入して送信ボタンをクリックすると、フォーム データが「welcome.php」という名前の PHP ファイルに送信されます:
欢迎 <?php echo $_POST["fname"]; ?>!<br> 你的年龄是 <?php echo $_POST["age"]; ?> 岁。
次の章では、PHP の $_GET 変数と $_POST 変数 について説明します。
PHP ドロップダウン メニューのデータを取得します
PHP ドロップダウン メニューのラジオ選択
次の例では、ドロップダウン メニューの 3 つのオプションを設定しますフォームは GET メソッドを使用してデータを取得します。アクション属性値が Empty であることは、select の name 属性を通じてドロップダウン メニューの値を取得できることを意味します:
php_form_select.php ファイル コード。 :
<?php$q = isset($_GET['q'])? htmlspecialchars($_GET['q']) : '';if($q) { if($q =='PHP') { echo 'php中文网教程<br>http://www.php.cn'; } else if($q =='GOOGLE') { echo 'Google 搜索<br>http://www.google.com'; } else if($q =='TAOBAO') { echo '淘宝<br>http://www.taobao.com'; }} else { ?> <form action="" method="get"> <select name="q"> <option value="">选择一个站点:</option> <option value="PHP">PHP</option> <option value="GOOGLE">Google</option> <option value="TAOBAO">Taobao</option> </select> <input type="submit" value="提交"> </form> <?php}?>
PHP ドロップダウン メニューの複数選択
ドロップダウン メニューが複数選択 ( multiple="multiple") の場合、select name="q[]" を設定することで取得できます。コードは次のとおりです:
php_form_select_mul.php ファイル コード:
<?php$q = isset($_POST['q'])? $_POST['q'] : '';if(is_array($q)) { $sites = array( 'PHP' => 'php中文网: http://www.php.cn', 'GOOGLE' => 'Google 搜索: http://www.google.com', 'TAOBAO' => '淘宝: http://www.taobao.com', ); foreach($q as $val) { // PHP_EOL 为常量,用于换行 echo $sites[$val] . PHP_EOL; } } else { ?> <form action="" method="post"> <select multiple="multiple" name="q[]"> <option value="">选择一个站点:</option> <option value="PHP">PHP</option> <option value="GOOGLE">Google</option> <option value="TAOBAO">Taobao</option> </select> <input type="submit" value="提交"> </form> <?php}?>
ラジオ ボタン フォーム
PHP ラジオ ボタン フォームの name 属性の値は、同じですが、値の値は次のとおりです:
php_form_radio.php ファイル コード:
<?php$q = isset($_GET['q'])? htmlspecialchars($_GET['q']) : '';if($q) { if($q =='PHP') { echo 'php中文网教程<br>http://www.php.cn'; } else if($q =='GOOGLE') { echo 'Google 搜索<br>http://www.google.com'; } else if($q =='TAOBAO') { echo '淘宝<br>http://www.taobao.com'; }} else { ?><form action="" method="get"> <input type="radio" name="q" value="RUNOOB" />Runoob <input type="radio" name="q" value="GOOGLE" />Google <input type="radio" name="q" value="TAOBAO" />Taobao <input type="submit" value="提交"></form> <?php}?>
checkbox チェックボックス
PHP チェックボックス チェックボックスは複数の値を選択できます:
php_form_select_checkbox.php ファイル コード:
<?php$q = isset($_POST['q'])? $_POST['q'] : '';if(is_array($q)) { $sites = array( 'PHP' => 'php中文网教程: http://www.php.cn', 'GOOGLE' => 'Google 搜索: http://www.google.com', 'TAOBAO' => '淘宝: http://www.taobao.com', ); foreach($q as $val) { // PHP_EOL 为常量,用于换行 echo $sites[$val] . PHP_EOL; } } else { ?> <form action="" method="post"> <input type="checkbox" name="q[]" value="PHP"> PHP<br> <input type="checkbox" name="q[]" value="GOOGLE"> Google<br> <input type="checkbox" name="q[]" value="TAOBAO"> Taobao<br> <input type="submit" value="提交"> </form> <?php}?>
フォーム検証
ユーザー入力を(クライアントスクリプトを通じて)可能な限り検証する必要があります。ブラウザーの検証が高速になり、サーバーへの負担が軽減されます。
ユーザー入力をデータベースに挿入する必要がある場合は、サーバー検証の使用を検討する必要があります。サーバー上のフォームを検証する良い方法は、別のページにジャンプするのではなく、フォーム データを現在のページに渡すことです (非同期送信の方が良いです)。これにより、ユーザーは同じフォーム ページでエラー メッセージを取得できます。ユーザーがエラーを見つけやすくなります。
おすすめ関連記事:「PHPでフォームデータを取得する詳細な紹介」
おすすめ実践チュートリアル:「PHPフォームとユーザー入力」