post和get是指頁面提交的兩種方式。
(推薦教學:php實戰影片教學)
get:參數都體現在url上,可以用於翻頁,簡單查詢,get只能接收2M以下的內容,所以有局限性,另外由於內容是可見的,安全性就下降了。
post:用於頁面表單提交,上傳檔案。大小沒有限制,也不會在網址列上顯示。
$_POST 變數
$_POST 變數是一個數組,內容是由 HTTP POST 方法傳送的變數名稱和值。
$_POST 變數用於收集來自 method=”post” 的表單中的值。
從帶有 POST 方法的表單發送的訊息,對任何人都是不可見的(不會顯示在瀏覽器的網址列),並且對發送訊息的量也沒有限制。
範例:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <form action="http://127.0.0.1:8080/php7/hello.php" method="post"> Enter your name: <input type="text" name="name" /> Enter your age: <input type="text" name="age" /> <input type="submit" /> </form> </body> </html>
這裡是hello.php檔案的程式碼 「hello.php」 檔案現在可以透過$_POST 變數來取得表單資料了(請注意,表單網域的名稱會自動成為$_POST 陣列中的ID 鍵)
<?php header("content-type:text/html;charset=utf-8"); echo $_POST["name"]; //可以输出form中标签的属性值 其中参数的name echo $_POST["age"]; ?>
為什麼要使用$_POST?
透過 HTTP POST 傳送的變數不會顯示在 URL 中。
變數沒有長度限制。
不過,因為變數不會顯示在 URL 中,所以無法將頁面加入書籤。
$_GET 變數
$_GET 變數用於收集來自method=”get” 的表單中的值,直覺的的是瀏覽器中可以看到的參數,例如我在百度搜尋「wordpress」的時候,我請求的url就是http://www.baidu.com/s?ie=utf-8&bs=wordpress&f=8&rsv_bp=1&wd=wordpress&inputT=0,那麼'?'後面的參數都是可以用$_GET 獲取,各個參數是以'&'作為分隔符號的。
$_GET 變數是一個數組,內容是由 HTTP GET 方法傳送的變數名稱和值。
從帶有GET 方法的表單發送的訊息,對任何人都是可見的(會顯示在瀏覽器的網址列),並且對發送的信息量也有限制(最多100 個字元),所以參數的長度不是無限的,但是基本上都能滿足我們的要求了。
範例:
<form action="hello.php" method="get"> Name: <input type="text" name="name" /> Age: <input type="text" name="age" /> <input type="submit" /></form>
當使用者點擊提交按鈕時,發送的URL 會類似這樣:
http://www.w3school.com.cn/welcome.php?name=Peter&age=37
「hello.php」 檔案現在可以透過$_GET 變數來取得表單資料了(請注意,表單域的名稱會自動成為$_GET 數組中的ID 鍵)
Welcome <?php echo $_GET["name"]; ?>.<br /> You are <?php echo $_GET["age"]; ?> years old!
如果你在name 表單框中輸入了Mike ,在age 表單框中輸入了23,那麼顯示的結果就是這樣的。
Welcome Mike You are 23 years old!
為什麼要使用 $_GET?
註解:在使用 $_GET 變數時,所有的變數名稱和值都會顯示在 URL 中。所以在發送密碼或其他敏感資訊時,不應該使用這個方法。
不過,正因為變數顯示在 URL 中,因此可以在收藏夾中收藏該頁面。在某些情況下,這是很有用的。
註解:HTTP GET 方法不適合大型的變數值;值是不能超過 100 個字元的。
以上是實例詳解PHP中 $_POST的$_GET的用法與區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!