php中提交表單資料的POST()方法和GET()方法

來源:互聯網
上載者:User
提交擷取表單資料是表單應用中最常用的操作,經常需要PHP後台從前台頁面中擷取使用者在前台表單頁面中提交的各種資料。表單資料傳遞的方式有以下的兩種方法,一種為POST()方法,另外一種為GET()方法。具體採用哪種擷取資料的方法是由<form>表單的 method 屬性所指定的,下面講解這兩種方法在 Web 表單中的具體應用。

使用POST()方法提交表單

在使用POST()方法時,只需要將<form>表單中的屬性 method 設定成POST即可。 POST()方法不依賴於URL,不會顯示在地址欄。POST()方法可以沒有限制地傳遞資料到伺服器,所有提交的資訊在後台傳輸,使用者在瀏覽器端是看不到這一過程的,安全性會更高。所以POST()方法比較適合用於發送一個保密的(如銀行帳號)或者容量較大的資料到伺服器中。

下面的執行個體將使用POST()方法發送文字框資訊到伺服器,範例程式碼如下所示:

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <title>Document</title></head><body><form action="index.php" method="post" name="form1">  <table width="300" border="0" cellpadding="0"  cellspacing="0">    <tr>      <td height="30">訂單號: <input type="text" name="user" size="20">        <input type="submit" name="submit" value="提交">      </td>    </tr>  </table></form></body></html>

說明:在以上的代碼中,form表單的 method 屬性指定了 POST()方法的傳遞方式,並通過 action 屬性指定了資料頁為index.php。因此,當點擊“提交”按鈕後,即可提交文字框的資訊到伺服器,運行結果如下:

使用GET()方法提交表單

GET()方法在<form>表單中 method 屬性的預設方法。使用GET()方法提交表單資料的時候,資料會被附加到URL後面並顯示出來,作為URL的一部分發送到伺服器端去。在程勳開發過程中,由於GET()方法提交的表單資料時附加到URL上發送的,因此,在URL的地址欄中將會顯示如下的內容“URL地址+使用者傳遞的參數資訊”。

GET()方法的傳參格式如下:

其中,url為表單的響應地址(如 127.0.0.1/index.php), name1為表單元素的名稱,value1為表單元素的值。url和表單元素之間用“?”隔開,而多個表單元素之間用“&”隔開,每個表單元素的格式都是name=value,固定不變的格式和套路。牢記即可。

注意:若要使用GET()方法提交表單,URL的長度應限制在1MB字元以內。如果發送的資料量太大,資料將會被截斷,從而導致意外或失敗的處理結果。

下面建立一個表單來實現應用 GET()方法提交使用者名稱和密碼,並顯示在URL 地址欄中。添加一個文字框,命名為user;添加一個密碼域,命名為pwd;將表單的 method 屬性設定為 GET()方法,範例程式碼如下所示:

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <title>form</title></head><body><form action="index.php" method="get" name="form1">  <table width="500" border="0" cellpadding="0"  cellspacing="0">    <tr>      <td width="500" height="30">            使用者名稱:<input type="text" name="user" size="12">            密&nbsp;碼:<input type="password" name="pwd" id="pwd" size="12">        <input type="submit" name="submit" value="提交">      </td>    </tr>  </table></form></body></html>

運行這個執行個體,在文字框中輸入使用者名稱和密碼,點擊“提交”按鈕後,文字框內的資訊就會顯示在URL地址欄中,如下面的圖所示:

這裡可以很明顯的發現,GET()方法會將參數暴露在地址欄中。如果使用者傳遞的參數是非保密性的參數(如id=8),那麼採用

GET()方法傳遞資料是可行的;如果使用者傳遞的保密性的參數(如密碼等),使用這種方法傳遞資料是不安全的。解決該問題的方法是將表單中的 method 屬性預設的GET()方法替換為POST()方法。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.