首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 表單處理完整教程:從 HTML 表單到 $_POST 處理

     編輯:PHP 相關知識

表單頁面 (form.html)

包含常見輸入類型:文字框、密碼框、下拉選單、多行文字、單選組、複選組、多選下拉選單、隱藏欄位。

<form action="someform.php" method="post">
<table>
  <tr><td>姓名:</td><td><input type="text" name="username" value="raymond" id="username"/></td></tr>
  <tr><td>密碼:</td><td><input type="password" name="password" maxlength="10" id="password"/></td></tr>
  <tr><td>年齡:</td><td>
    <select name="age">
      <option value="16">小於16</option>
      <option value="16-30" selected>16-30</option>
      <option value="31-50">31-50</option>
      <option value="51-80">51-80</option>
    </select>
  </td></tr>
  <tr><td>自我介紹:</td><td><textarea name="intro" rows="3" cols="50">請輸入...</textarea></td></tr>
  <tr><td>體育愛好:</td><td>
    <input type="radio" name="fave_sport" value="tennis" checked>網球
    <input type="radio" name="fave_sport" value="football">足球
    <input type="radio" name="fave_sport" value="baseball">籃球
    <input type="radio" name="fave_sport" value="polo">保齡球
  </td></tr>
  <tr><td>開發語言:</td><td>
    <input type="hidden" name="from" value="注冊表單">
    <input type="checkbox" name="languages[]" value="php" checked>PHP
    <input type="checkbox" name="languages[]" value="java">Java
    <input type="checkbox" name="languages[]" value="perl">Perl
    <input type="checkbox" name="languages[]" value="cpp">C++
    <input type="checkbox" name="languages[]" value=".net">.NET
    <input type="checkbox" name="languages[]" value="delphi">Delphi
  </td></tr>
  <tr><td>開發工具:</td><td>
    <select name="develop_ide[]" size="5" multiple>
      <option value="ZDE" selected>Zend Studio</option>
      <option value="Eclipse">Eclipse</option>
      <option value="Editplus">Editplus</option>
      <option value="Ultraedit">Ultraedit</option>
      <option value="Other">Other</option>
    </select>
  </td></tr>
  <tr><td></td><td><input type="submit" name="btn_submit" value="提交"/></td></tr>
</table>
</form>

關鍵屬性解析

  • maxlength:限制密碼最大長度(前端攔截,後端仍需驗證)。
  • selected:預設選中選項。
  • rows/cols:設定 textarea 顯示尺寸。
  • name="fave_sport":單選組同名,僅傳遞一個值。
  • name="languages[]":複選組加 [] 以陣列形式接收多值。
  • checked:預設勾選項。

處理頁面 (someform.php)

<?php
if (isset($_POST['btn_submit'])) {
    // 必填驗證
    if (empty($_POST['username'])) { echo '您沒有輸入用戶名'; exit; }
    if (empty($_POST['password'])) { echo '您沒有輸入密碼'; exit; }

    // 輸出基本欄位
    echo '您的用戶名:' . htmlspecialchars($_POST['username']) . '<br>';
    echo '您的密碼(明文):' . htmlspecialchars($_POST['password']) . '<br>';
    echo '您的年齡:' . htmlspecialchars($_POST['age']) . '<br>';

    // 處理複選陣列
    if (!empty($_POST['languages'])) {
        echo '您選擇的語言:';
        foreach ($_POST['languages'] as $lang) echo htmlspecialchars($lang) . ' ';
    } else { echo '您沒有輸入任何興趣愛好'; }
    echo '<br>';

    // 處理多選下拉陣列
    if (!empty($_POST['develop_ide'])) {
        echo '您使用的開發工具:';
        foreach ($_POST['develop_ide'] as $ide) echo htmlspecialchars($ide) . ' ';
    } else { echo '您沒有選擇開發工具'; }
    echo '<br>';

    // 多行文字保留換行
    echo '您的自我介紹:' . nl2br(htmlspecialchars($_POST['intro'])) . '<br>';

    // 隱藏欄位
    echo '網頁隱藏值:' . htmlspecialchars($_POST['from']) . '<br>';
}
?>

安全與最佳實踐

  1. 所有輸出經 htmlspecialchars() 轉義,防 XSS。
  2. 密碼切勿明文顯示或儲存,實務上應用 password_hash()。
  3. 使用 filter_input() 或框架驗證器進行更嚴格的輸入過濾。
  4. 採用 CSRF Token 保護表單提交。

本範例展示了從表單構建到後端處理的完整流程,適合初學者掌握 PHP 表單處理基礎。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved