PHP完全独学マニュアルlogin
PHP完全独学マニュアル
著者:php.cn  更新時間:2022-04-15 13:53:54

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 ファイルは次のようになります:

欢迎 <?php echo $_POST["fname"]; ?>!<br>
你的年龄是 <?php echo $_POST["age"]; ?>  岁。
次のようにブラウザ経由でデモにアクセスします:

ebea44c50d0149ee1a56188155ee841.png

468a1578b0cac31cf9b7a3fc900084a.png

次の章では、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フォームとユーザー入力