php判斷getpost
Ⅰ php 怎麼判斷post或get的值是否為小數或者整數
在日常的php開發中,我們可能會碰到,需要判斷Get或者Post的數值是否為整型或者是浮點型、是否含有小數
由於php是弱類型語言,很多初次做php開發的程序員對php的數據類型並不是很關注或者熟悉,但是在一些的常見業務實現中往往需要對數據類型進行判斷!
分享一個前段時間在業務實現過程中遇到的問題!
比如這樣的一個連接:www.davup.com/index.php?add=1000.1
以往正常的邏輯中會直接拿來get['add'] 進行
is_number()【判斷是否為數值】
is_float()【是否為小數】
來進行判斷。結果發現這樣的處理方式是錯位的 ! 因為 無論是Post的數據或者是Get的數據,在php中得到的 值得數據類型都是字元串!
所以,上面兩個函數是不能正常使用的, 只能用字元串函數來處理! 最簡單的方式就是使用strstr(get['add'],'.'); 【判斷是否含有小數點,如果含有小數點,就返回真,沒有就返回假】!
Ⅱ PHP 中的 GET 與 POST 有什麼區別
php中的GET和POST的區別和特點如下:
1. GET是從伺服器上獲取數據,POST是向伺服器傳送數據。
2. GET是把參數數據隊列加到提交表單的ACTION屬性所指的URL中,值和表單內各個欄位一一對應,在URL中可以看到。POST是通過HTTP POST機制,將表單內各個欄位與其內容放置在HTML HEADER內一起傳送到ACTION屬性所指的URL地址。用戶看不到這個過程。
3.對於GET方式提交表單數據,伺服器端用$_GET[『name』]獲取變數的值,對於POST方式提交表單數據,伺服器端用$_POST[『name』]獲取提交的數據,當然,兩者都可以通過$_REQUEST[『name』]獲得表單數據。對於REQUEST方式提交表單數據,伺服器端用$_REQUEST[『name』]獲取變數的值,但這種方式很少用。
4. GET傳送的數據量較小,不能大於2KB。POST傳送的數據量較大,一般被默認為不受限制。但理論上,一般認為不能超過100KB。
5. GET安全性非常低,POST安全性較高。
6. GET表單值可以通過_GET獲取;但通過action的url設置的參數總是獲取不到的,<form method="get" action="a.asp?b=b">跟<form method="get"action="a.asp">是一樣的,也就是說,在這種情況下,GET方式會忽略action頁面後邊帶的參數列表。POST表單值可以通過_POST獲取;但通過action的url參數設置的參數則可以不能通過_POST獲取到。action=test.php?id=1這種就是GET方式傳值,可以用$_REQUEST和$_GET接受傳值,但不能用POST方式獲取到值,即使表單是POST方式提交。所在,在提交表單時,如果action中同時有參數,最好只能通過POST表單方式,對於表單內數據,直接通過POST獲取,對於action中參數,童工GET獲取。
在做數據查詢時,建議用GET方式,而在做數據添加、修改或刪除時,建議用POST方式。
Ⅲ PHP 判斷請求是POST還是GET
$_SERVER['REQUEST_METHOD']該變數中存儲的是表單提交的方式。默認為get可用isset($_POST["表單名或欄位名"]) 或者$_SERVER['REQUEST_METHOD']=="POST"判斷 試過以下是無效的:用$_REQUEST_METHOD 來判斷 ,如:<?phpif($_REQUEST_METHOD == 「POST」){echo 「post:」.$_POST['firstName'].」-」.$_POST["birthday"];
我也是後盾人哪裡學會的,樓主可以去學習一下
Ⅳ php面試題get和post的區別
1、Get 方法通過 URL 請求來傳遞用戶的數據,將表單內各欄位名稱與其內容,以成對的字元串連接,置於 action 屬性所指程序的 url 後,如http://www.domain.com/test.asp?name=51js&password=51js,數據都會直接顯示在 url 上,就像用戶點擊一個鏈接一樣;Post 方法通過 HTTP post 機制,將表單內各欄位名稱與其內容放置在 HTML 表頭(header)內一起傳送給伺服器端交由 action 屬性能所指的程序處理,該程序會通過標准輸入(stdin)方式,將表單的數據讀出並加以處理
2、 Get 方式需要使用 Request.QueryString 來取得變數的值;而 Post 方式通過 Request.Form 來訪問提交的內容
3、Get 方式傳輸的數據量非常小,一般限制在 2 KB 左右,但是執行效率卻比 Post 方法好;而 Post 方式傳遞的數據量相對較大,它是等待伺服器來讀取數據,不過也有位元組限制,這是為了避免對伺服器用大量數據進行惡意攻擊,根據微軟方面的說法,微軟對用 Request.Form() 可接收的最大數據有限制,IIS 4 中為 80 KB 位元組,IIS 5 中為 100 KB 位元組
建議:除非你肯定你提交的數據可以一次性提交,否則請盡量用 Post 方法
4、Get 方式提交數據,會帶來安全問題,比如一個登陸頁面,通過 Get 方式提交數據時,用戶名和密碼將出現在 URL 上,如果頁面可以被緩存或者其他人可以訪問客戶這台機器,就可以從歷史記錄獲得該用戶的帳號和密碼,所以表單提交建議使用 Post 方法;Post 方法提交的表單頁面常見的問題是,該頁面如果刷新的時候,會彈出一個對話框
建議:出於安全性考慮,建議最好使用 Post 提交數據
***********************************
在B/S應用程序中,前台與後台的數據交互,都是通過HTML中Form表單完成的。Form提供了兩種數據傳輸的方式——get和post。雖然它們都是數據的提交方式,但是在實際傳輸時確有很大的不同,並且可能會對數據產生嚴重的影響。雖然為了方便的得到變數值,Web容器已經屏蔽了二者的一些差異,但是了解二者的差異在以後的編程也會很有幫助的。
Form中的get和post方法,在數據傳輸過程中分別對應了HTTP協議中的GET和POST方法。二者主要區別如下:
1、Get是用來從伺服器上獲得數據,而Post是用來向伺服器上傳遞數據。
2、Get將表單中數據的按照variable=value的形式,添加到action所指向的URL後面,並且兩者使用「?」連接,而各個變數之間使用「&」連接;Post是將表單中的數據放在form的數據體中,按照變數和值相對應的方式,傳遞到action所指向URL。
3、Get是不安全的,因為在傳輸過程,數據被放在請求的URL中,而如今現有的很多伺服器、代理伺服器或者用戶代理都會將請求URL記錄到日誌文件中,然後放在某個地方,這樣就可能會有一些隱私的信息被第三方看到。另外,用戶也可以在瀏覽器上直接看到提交的數據,一些系統內部消息將會一同顯示在用戶面前。Post的所有操作對用戶來說都是不可見的。
4、Get傳輸的數據量小,這主要是因為受URL長度限制;而Post可以傳輸大量的數據,所以在上傳文件只能使用Post(當然還有一個原因,將在後面的提到)。
5、Get限制Form表單的數據集的值必須為ASCII字元;而Post支持整個ISO10646字元集。
6、Get是Form的默認方法。
*.Post傳輸數據時,不需要在URL中顯示出來,而Get方法要在URL中顯示。
*.Post傳輸的數據量大,可以達到2M,而Get方法由於受到URL長度的限制,只能傳遞大約1024位元組.
*.Post顧名思義,就是為了將數據傳送到伺服器段,Get就是為了從伺服器段取得數據.而Get之所以也能傳送數據,只是用來設計告訴伺服器,你到底需要什麼樣的數據.Post的信息作為http請求的內容,而Get是在Http頭部傳輸的。
網頁表單當中的get方式和post方式的區別
1、get方式可傳遞的數據量有限,大約是2K左右,而post在iis5當中則達到100k,一般人們可以默認post是無限制的;
2、get方式在提交帳號密碼等表單時不如post方式安全。在get提交表單以後瀏覽器的url會將你提交的表單參數全部顯示在地址欄當中,而且可以通過機器的緩存來直接查看到各項參數;而post方式則不會;
3、get方式在後台處理頁面用Request.QueryString接收各個參數;而post則用Request.Form獲取;
4、get方式會忽略<form action="a.asp?a=a"里邊的"a=a"這個參數;而post方式則不會
Ⅳ PHP中$_POST和$_GET
$_GET
就是地址傳值,用 '?' 開始傳值,多個值間用 '&' 號分隔,多用於簡單的傳值,比如說看新聞需要新聞id一般就會用地址傳值, $_GET的好處是傳值可見,也就是只要一個地址就ok了,缺點是不安全,而且有限制位元組數,優點是容易分享
$_POST
這種提交方式不可見,也就是傳的值不會出現在URL地址中,一般用於注冊和登錄,這種方式因為要安全要高一點,所以會用POST方式,而且POST方式沒有限制位元組數,所以提交文章也會使用post
POST傳值不可見,GET傳值可見,在一些簡單的情況應該使用GET,比如說看新聞,如果用post方式的話,網址中沒有傳值,就識別不了是哪編新聞,這就不容易分享了,這種情況就會使用get比較多,
上面說的只是一個例子而已,一般情況下,沒特別需求,登錄注冊,安全性要求高的,...填寫文章,需要提交大數據的,表單中含有上傳文件的,都會使用post,
其他情況沒什麼特別的話都可以使用get
Ⅵ php 判斷是否有get 或者post
$_server['request_method']該變數中存儲的是表單提交的方式。默認為get可用isset($_post["表單名或欄位名"])
或者$_server['request_method']=="post"判斷
試過以下是無效的:用$_request_method
來判斷
,如:<?phpif($_request_method
==
「post」){echo
「post:」.$_post['firstname'].」—」.$_post["birthday"];
Ⅶ PHP怎麼判斷post或get的值是否為小數或者整
以往正常的邏輯中會直接拿來get['add'] 進行
is_number()【判斷是否為數值】
is_float()【是否為小數】
來進行判斷。結果發現這樣的處理方式是錯位的 ! 因為 無論是Post的數據或者是Get的數據,在php中得到的 值得數據類型都是字元串!
所以,上面兩個函數是不能正常使用的, 只能用字元串函數來處理! 最簡單的方式就是使用strstr(get['add'],'.'); 【判斷是否含有小數點,如果含有小數點,就返回真,沒有就返回假】!
Ⅷ php 判斷是post還是get
PHP 判斷是否為Get/Post/Ajax提交
/**
* 是否是AJAx提交的
* @return bool
*/
function isAjax(){
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){
return true;
}else{
return false;
}
}
/**
* 是否是GET提交的
*/
function isGet(){
return $_SERVER['REQUEST_METHOD'] == 'GET' ? true : false;
}
/**
* 是否是POST提交
* @return int
*/
function isPost() {
return ($_SERVER['REQUEST_METHOD'] == 'POST' && checkurlHash($GLOBALS['verify']) && (empty($_SERVER['HTTP_REFERER']) || preg_replace("~https?:\/\/([^\:\/]+).*~i", "\\1", $_SERVER['HTTP_REFERER']) == preg_replace("~([^\:]+).*~", "\\1", $_SERVER['HTTP_HOST']))) ? 1 : 0;
}
Ⅸ php面試題get和post的區別
網頁表單當中的get方式和post方式的區別
1、get方式可傳遞的數據量有限,大約是2K左右,而post在iis5當中則達到100k,一般人們可以默認post是無限制的;
2、get方式在提交帳號密碼等表單時不如post方式安全。在get提交表單以後瀏覽器的url會將你提交的表單參數全部顯示在地址欄當中,而且可以通過機器的緩存來直接查看到各項參數;而post方式則不會;
3、get方式在後台處理頁面用Request.QueryString接收各個參數;而post則用Request.Form獲取;
4、get方式會忽略<form action="a.asp?a=a"里邊的"a=a"這個參數;而post方式則不會
Ⅹ PHP 判斷請求是POST還是GET
$_SERVER['REQUEST_METHOD']該變數中存儲的是表單提交的方式。默認為get可用isset($_POST["表單名或欄位名"]) 或者$_SERVER['REQUEST_METHOD']=="POST"判斷 試過以下是無效的:用$_REQUEST_METHOD 來判斷 ,如:<?phpif($_REQUEST_METHOD == 「POST」){echo 「post:」.$_POST['firstName'].」—」.$_POST["birthday"];