PHP $_POST 變數

在上面的一節我們講了$_GET變量,那麼這一節我們來學習一下$_POST 變數收集method="post" 的表單中的值。

$_POST 變數

預先定義的 $_POST 變數用於收集來自 method="post" 的表單中的值。

從帶有 POST 方法的表單發送的訊息,對任何人都是不可見的(不會顯示在瀏覽器的網址列),並且對發送訊息的量也沒有限制。

註解:然而,預設情況下,POST 方法的傳送訊息的量最大值為 8 MB(可透過設定 php.ini 檔案中的 post_max_size 進行變更)。


 現在我們用範例來看吧

#範例

<html>
 <head>
     <meta charset="utf-8">
     <title>php中文网(php.cn)</title>
 </head>
 <body>
 
 <form action="php_post.php" method="post">
     名字: <input type="text" name="name"><br>
     性别:<input type="radio" name="sex" value="男" checked>男
     <input type="radio" name="sex" value="女">女<br>
     年龄: <input type="text" name="age"><br>
     <input type="submit" value="提交">
 </form>
 
 </body>
 </html>

提交到 php_post.php 頁面

<?php
 header("Content-type:text/html;charset=utf-8");    //设置编码
 echo "你的姓名是:" .$_POST['name'] ."<br/>";
 echo "你的性别是:"  .$_POST['sex']."<br/>";
 echo "你的年龄是:".$_POST['age'];
 ?>

#程式運行結果:

2.png

##我們看到,我們用POST提交的信息,沒有在Url 欄中顯示,所以,你現在知道一點,POST 比GET 要更為安全一點


GET 與POST 的差異:

  1. #get是從伺服器上取得數據,post是傳送資料到伺服器。

  2. get是把參數資料佇列加到提交表單的ACTION屬性所指的URL中,值和表單內各個欄位一一對應,在URL中可以看到。 post是透過HTTP post機制,將表單內各個欄位與其      內容放置在HTML HEADER內一起傳送到ACTION屬性所指的URL位址。用戶看不到這個過程。

  3. 對於get方式,伺服器端用Request.QueryString取得變數的值,對於post方式,伺服器端用Request.Form取得提交的資料。

  4. get傳送的資料量較小,且不能大於2KB。 post傳送的資料量較大,一般被預設為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。

  5.  get安全性非常低,post安全性較高。但是執行效率卻比Post方法好。



建議: 1、get方式的安全性較Post方式差些,包含機密資訊的話,建議用Post資料提交方式;

2、在做資料查詢時,建議用Get方式;而在做資料新增、修改或刪除時,建議用Post方式;

#

PHP $_REQUEST 變數

已定義的$_REQUEST 變數包含了$_GET、$_POST和$_COOKIE 的內容。

$_REQUEST 變數可用來收集透過 GET 和 POST 方法傳送的表單資料。

你將上面的php 檔案修改一下看看

<?php
 header("Content-type:text/html;charset=utf-8");    //设置编码
 echo "你的姓名是:" .$_REQUEST['name'] ."<br/>";
 echo "你的性别是:"  .$_REQUEST['sex']."<br/>";
 echo "你的年龄是:".$_REQUEST['age'];
 ?>

你會發現不管是$_POST還是$_GET提交的,都能用 $_REQUEST接收



#
繼續學習
||
<html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <form action="php_post.php" method="post"> 名字: <input type="text" name="name"><br> 性别:<input type="radio" name="sex" value="男" checked>男 <input type="radio" name="sex" value="女">女<br> 年龄: <input type="text" name="age"><br> <input type="submit" value="提交"> </form> </body> </html>