PHP中$_GET與$_POST變量的使用與區(qū)別是什么

這篇文章主要講解了“PHP中$_GET與$_POST變量的使用與區(qū)別是什么”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“PHP中$_GET與$_POST變量的使用與區(qū)別是什么”吧!

創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比黃岡網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式黃岡網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋黃岡地區(qū)。費用合理售后完善,10多年實體公司更值得信賴。

PHP中$_GET與$_POST變量的使用與區(qū)別是什么

在之前的文章中我們已經(jīng)了解了怎樣去驗證必需數(shù)據(jù),以及怎樣去通過正則表達式來驗證表單中的郵件與URL。其中就有$_GET 變量與$_POST 變量的影子,接下來我們就來看一看$_GET 變量與$_POST 變量使用的相關(guān)知識。

PHP $_GET 變量

我們前面在學習的時候已經(jīng)了解到了 $_GET 變量用于收集來自 method="get" 的表單中的值。從帶有 GET 方法的表單發(fā)送的信息,對任何人都是可見的(會顯示在瀏覽器的地址欄),并且對發(fā)送信息的量也有限制。其實也可以看成是通過 URL 參數(shù)傳遞給當前腳本的變量的數(shù)組。

在使用 $_GET 變量時,所有的變量名和值都會顯示在 URL 中。所以在發(fā)送密碼或其他敏感信息時,不應該使用這個方法。不過,正因為變量顯示在 URL 中,因此可以在收藏夾中收藏該頁面。在某些情況下,這是很有用的。

接下來我們通過示例來看一下:

<html>
 <head>
     <meta charset="utf-8">
     <title>創(chuàng)新互聯(lián)(php.cn)</title>
 </head>
 <body>
 
 <form action="demo.php" method="get">
     名字: <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>

提交到demo.php的內(nèi)容為:

<?php
 header("Content-type:text/html;charset=utf-8");    //設置編碼
 echo "你的姓名是:" .$_GET['name'] ."<br/>";
 echo "你的性別是:"  .$_GET['sex']."<br/>";
 echo "你的年齡是:".$_GET['age'];
 ?>

輸出結(jié)果:

PHP中$_GET與$_POST變量的使用與區(qū)別是什么

我們發(fā)現(xiàn)我們在表單填寫的值,都顯示在Url欄中。那么我們在什么時候使用 method="get"呢。

在 HTML 表單中使用 method="get" 時,所有的變量名和值都會顯示在 URL 中。所以在發(fā)送密碼或其他敏感信息時,不應該使用這個方法!然而,正因為變量顯示在 URL 中,因此可以在收藏夾中收藏該頁面。在某些情況下,這是很有用的。

其中需要注意的是:HTTP GET 方法不適合大型的變量值。它的值是不能超過 2000 個字符的。

$_POST 變量

在上述示例中我們講到了$_GET 變量,接下來我們就來看一下$_POST 變量,預定義的 $_POST 變量用于收集來自 method="post" 的表單中的值。

從帶有 POST 方法的表單發(fā)送的信息,對任何人都是不可見的也不會像$_GET 變量一樣顯示在瀏覽器的地址欄,并且對發(fā)送信息的量也沒有限制。然而,默認情況下,POST 方法的發(fā)送信息的量最大值為 8 MB,可以通過設置 php.ini 文件中的 post_max_size 進行更改。

接下來我們通過示例來看一下:

<html>
 <head>
     <meta charset="utf-8">
     <title>創(chuàng)新互聯(lián)(php.cn)</title>
 </head>
 <body>
 
 <form action="demo.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>

其中提交到demo.php的內(nèi)容為:

<?php
 header("Content-type:text/html;charset=utf-8");    //設置編碼
 echo "你的姓名是:" .$_POST['name'] ."<br/>";
 echo "你的性別是:"  .$_POST['sex']."<br/>";
 echo "你的年齡是:".$_POST['age'];
 ?>

輸出結(jié)果:

PHP中$_GET與$_POST變量的使用與區(qū)別是什么

其中我們看到,我們用POST提交的信息,沒有在Url 欄中顯示,所以,POST 比GET 要更為安全一點。下面我們來總結(jié)一下$_GET與$_POST的區(qū)別。

$_GET$_POST的區(qū)別

get是從服務器上獲取數(shù)據(jù),post是向服務器傳送數(shù)據(jù)。

get是把參數(shù)數(shù)據(jù)隊列加到提交表單的ACTION屬性所指的URL中,值和表單內(nèi)各個字段一一對應,在URL中可以看到。post是通過HTTP post機制,將表單內(nèi)各個字段與其內(nèi)容放置在HTML HEADER內(nèi)一起傳送到ACTION屬性所指的URL地址。用戶看不到這個過程。

對于get方式,服務器端用Request.QueryString獲取變量的值,對于post方式,服務器端用Request.Form獲取提交的數(shù)據(jù)。

get傳送的數(shù)據(jù)量較小,不能大于2KB。post傳送的數(shù)據(jù)量較大,一般被默認為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。

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

將它倆的區(qū)別整理為一個表格,表格如下:


$_GET$_POST
在url中的顯示會有字符數(shù)限制的顯示在URL中
不會顯示在URL中
提交的數(shù)據(jù)量上一般是低于2k的少量數(shù)據(jù)PHP默認可以提交8M的大量數(shù)據(jù)
在安全性上不安全較為安全
提交原理提交的數(shù)據(jù)都是孤立的將數(shù)據(jù)作為一個整體提交
靈活性很靈活,有頁面跳轉(zhuǎn)就可以傳遞數(shù)據(jù)不靈活,必須要有表單的參與
常用性較為常用與$_GET相比較少

通過區(qū)別我們能夠得出:

  • get方式的安全性較Post方式要差些,包含機密信息的話,建議用Post數(shù)據(jù)提交方式;

  • 在做數(shù)據(jù)查詢時,建議用Get方式;而在做數(shù)據(jù)添加、修改或刪除時,建議用Post方式;

感謝各位的閱讀,以上就是“PHP中$_GET與$_POST變量的使用與區(qū)別是什么”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對PHP中$_GET與$_POST變量的使用與區(qū)別是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

網(wǎng)站標題:PHP中$_GET與$_POST變量的使用與區(qū)別是什么
URL標題:http://muchs.cn/article32/pdhopc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、商城網(wǎng)站、網(wǎng)站營銷網(wǎng)站維護、網(wǎng)站策劃、虛擬主機

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)