將表單內(nèi)容以post方式傳遞到服務器上找個地方,用時間戳來命名文件,以.txt文件存儲,定義自己需要的格式,就行啦,要查看數(shù)據(jù)的時候,直接遍歷讀取文件就可以查看了
我們提供的服務有:成都做網(wǎng)站、成都網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、旺蒼ssl等。為1000多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的旺蒼網(wǎng)站制作公司
方法1、最常見的方法是:$_post['fieldname'];
說明:只能接收content-type:
application/x-www-form-urlencoded提交的數(shù)據(jù)
解釋:也就是表單post過來的數(shù)據(jù)
方法2、file_get_contents("php://input");
說明:
允許讀取
post
的原始數(shù)據(jù)。
和
$http_raw_post_data
比起來,它給內(nèi)存帶來的壓力較小,并且不需要任何特殊的
php.ini
設置。
php://input
不能用于
enctype="multipart/form-data"。
解釋:
對于未指定
content-type
的post數(shù)據(jù),則可以使用file_get_contents(“php://input”);來獲取原始數(shù)據(jù)。
事實上,用php接收post的任何數(shù)據(jù)都可以使用本方法。而不用考慮content-type,包括二進制文件流也可以。
所以用方法二是最保險的方法
方法3、$globals['http_raw_post_data'];
說明:
總是產(chǎn)生
$http_raw_post_data
變量包含有原始的
post
數(shù)據(jù)。
此變量僅在碰到未識別
mime
類型的數(shù)據(jù)時產(chǎn)生。
$http_raw_post_data
對于
enctype="multipart/form-data"
表單數(shù)據(jù)不可用
如果post過來的數(shù)據(jù)不是php能夠識別的,可以用
$globals['http_raw_post_data']來接收,
比如
text/xml
或者
soap
等等
解釋:
$globals['http_raw_post_data']存放的是post過來的原始數(shù)據(jù)。
$_post或$_request存放的是
php以key=value的形式格式化以后的數(shù)據(jù)。
但$globals['http_raw_post_data']中是否保存post過來的數(shù)據(jù)取決于centent-type的設置,即post數(shù)據(jù)時
必須顯式示指明content-type:
application/x-www-form-urlencoded,post的數(shù)據(jù)才會存放到
$globals['http_raw_post_data']中
給你個例子,照著改改就成:
html
head
script src="selectuser.js"/script
/head
body
form
Select a User:
select name="users" onchange="showUser(this.value)"
option value="1"Peter Griffin/option
option value="2"Lois Griffin/option
option value="3"Glenn Quagmire/option
option value="4"Joseph Swanson/option
/select
/form
p
div id="txtHint"bUser info will be listed here./b/div
/p
/body
/html
"selectuser.js" 文件中的 JavaScript 代碼:
var xmlHttp
function showUser(str)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request")
return
}
var url="getuser.php"
url=url+"?q="+str
url=url+"sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("txtHint").innerHTML=xmlHttp.responseText
}
}
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
//Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
一般來說,
$_POST['user_login'] 當提交過來的表單的method=‘post’時,可獲取到值
$_GET['user_login'] 當 表單method=‘get’時,可獲取到值,
另外可以用一種方法獲取表單值,而無需理會 method 為post或get,
$_REQUEST['user_login'] ,
使用哪種往往根據(jù)實際的應用環(huán)境來決定。
你對應的樣方號的按鈕,函數(shù)直接getcmp樣方號的text值就應該可以了。
PHP接收JSON格式的數(shù)據(jù)
在API服務中,目前流行采用json形式來交互。
給前端調(diào)用的接口輸出Json數(shù)據(jù),這個比較簡單,只需要組織好數(shù)據(jù),用json_encode($array) 轉(zhuǎn)化一下,前端就得到json格式的數(shù)據(jù)。
接收前端提交的json數(shù)據(jù)稍微復雜一點,原因是:PHP默認識別的數(shù)據(jù)類型是application/x-標準的數(shù)據(jù)類型。因此,對型如text/xml 或者 soap 或者 application/octet-stream 和application/json格式之類的內(nèi)容無法解析,如果用$_POST數(shù)組來接收就會失??!
此時可以使用$GLOBALS['HTTP_RAW_POST_DATA'] 或 file_get_contents('php://input') 來獲取提交的數(shù)據(jù)
查看手冊,可以發(fā)現(xiàn)$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST的區(qū)別:
$_POST:通過 HTTP POST 方法傳遞的變量組成的數(shù)組,是自動全局變量。
$GLOBALS['HTTP_RAW_POST_DATA'] :總是產(chǎn)生 $HTTP_RAW_POST_DATA 變量包含有原始的 POST 數(shù)據(jù)。此變量僅在碰到未識別 MIME 類型的數(shù)據(jù)時產(chǎn)生。$HTTP_RAW_POST_DATA 對于 enctype="multipart/form-data" 表單數(shù)據(jù)不可用。也就是說基本上$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST是一樣的。但是如果post過來的數(shù)據(jù)不是PHP能夠識別的,你可以用 $GLOBALS['HTTP_RAW_POST_DATA']來接收,比如 text/xml 或者 soap 等等。