iT邦幫忙

2025 iThome 鐵人賽

DAY 16
0
Modern Web

PHP 新手自學筆記系列 第 16

【Day16】$_GET 和 $_POST 表單處理

  • 分享至 

  • xImage
  •  

參考:w3schools
要做表單就要先認識getpost

簡單來說 HTML 裡面的表單 method="get" 或 method="post" 主要影響的是 資料傳送到伺服器的方式,這決定了資料是否顯示在 URL 上,以及適合的使用情境。

get: 資料會出現在網址後方 (Query String)

適合查詢、搜尋 (沒有敏感資料)
瀏覽器和伺服器會快取結果
有長度限制 (不同瀏覽器限制不同,通常幾千字元內)
優點:方便分享網址,快速測試

post: 資料會放在 Request Body,不會出現在 URL 上

適合傳送大量或敏感資料 (密碼、檔案等)
不會被瀏覽器直接快取
網址不會顯示參數,比較安全(但要配合 HTTPS 才真正安全)
可以傳送複雜格式(例如 JSON、檔案)

HTML 表單要注意的點

在 PHP 中用 POST 或 GET 取得資料時,輸入框必須有 name 屬性,才能被程式接收。
可以加 required 屬性強制必填,使用 type="email" 讓瀏覽器檢查格式,避免使用者輸入錯誤。

常見預設或慣用的 name 欄位 (也可自訂,只要符合規範)

類型 常見 name 說明
使用者資訊 name 使用者姓名
電子郵件 email 用於 email 輸入框
電話 phone / tel 用於電話號碼輸入框
帳號 / 使用者名稱 username / user 登入或註冊用
密碼 password / pwd 登入或註冊密碼
地址 address 地址欄位
郵遞區號 zipcode / postal 郵遞區號輸入
年齡 age 數字輸入欄位
性別 gender radio 或 select 使用
生日 birthday / dob 日期欄位
消費 / 商品 product / quantity 電商表單常用
選項 / 多選 hobby[] / interest[] checkbox 陣列形式
隱藏欄位 token / id 用於 CSRF token 或資料識別

先建立一個簡單的表單 檔名 index.html

<html>
<body>

<form action="index.php" method="POST">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br> // 瀏覽器檢查email格式
<input type="submit">
</form>

</body>
</html>

這邊提一下 action 後面目標網址,要將資料發送到的位置。 所以建立另外一個檔案index.php

<html>
<body>

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

</body>
</html>

要執行這個表單,必須透過伺服器(Apache、、Laravel )因為php只能在伺服器運行

輸出

Welcome shseh
Your email address is: sjioewjt@gmail.com
<!-- url : http://localhost:8080/index.php--  用post後面不含參數-->

method 改成 get

http://localhost:8080/index.php?name=12&email=tOIH%21%40gmail.com

總結:
GET 適合搜尋或篩選列表,POST 適合登入、註冊或上傳檔案
表單輸入可使用 HTML5 型態,例如 type="email",可讓瀏覽器先檢查格式
input type="submit" 可以加 value 改按鈕文字
開發時可以先用 GET 測試,確認資料送對,再改成 POST

明天學習怎麼防範表單攻擊


上一篇
【Day15】進階陣列函式
下一篇
【Day17】表單驗證 (XXS攻擊)
系列文
PHP 新手自學筆記17
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言