十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
将表单内容以post方式传递到服务器上找个地方,用时间戳来命名文件,以.txt文件存储,定义自己需要的格式,就行啦,要查看数据的时候,直接遍历读取文件就可以查看了
我们提供的服务有:成都做网站、成都网站制作、微信公众号开发、网站优化、网站认证、旺苍ssl等。为1000多家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的旺苍网站制作公司
方法1、最常见的方法是:$_post['fieldname'];
说明:只能接收content-type:
application/x-www-form-urlencoded提交的数据
解释:也就是表单post过来的数据
方法2、file_get_contents("php://input");
说明:
允许读取
post
的原始数据。
和
$http_raw_post_data
比起来,它给内存带来的压力较小,并且不需要任何特殊的
php.ini
设置。
php://input
不能用于
enctype="multipart/form-data"。
解释:
对于未指定
content-type
的post数据,则可以使用file_get_contents(“php://input”);来获取原始数据。
事实上,用php接收post的任何数据都可以使用本方法。而不用考虑content-type,包括二进制文件流也可以。
所以用方法二是最保险的方法
方法3、$globals['http_raw_post_data'];
说明:
总是产生
$http_raw_post_data
变量包含有原始的
post
数据。
此变量仅在碰到未识别
mime
类型的数据时产生。
$http_raw_post_data
对于
enctype="multipart/form-data"
表单数据不可用
如果post过来的数据不是php能够识别的,可以用
$globals['http_raw_post_data']来接收,
比如
text/xml
或者
soap
等等
解释:
$globals['http_raw_post_data']存放的是post过来的原始数据。
$_post或$_request存放的是
php以key=value的形式格式化以后的数据。
但$globals['http_raw_post_data']中是否保存post过来的数据取决于centent-type的设置,即post数据时
必须显式示指明content-type:
application/x-www-form-urlencoded,post的数据才会存放到
$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'] ,
使用哪种往往根据实际的应用环境来决定。
你对应的样方号的按钮,函数直接getcmp样方号的text值就应该可以了。
PHP接收JSON格式的数据
在API服务中,目前流行采用json形式来交互。
给前端调用的接口输出Json数据,这个比较简单,只需要组织好数据,用json_encode($array) 转化一下,前端就得到json格式的数据。
接收前端提交的json数据稍微复杂一点,原因是:PHP默认识别的数据类型是application/x-标准的数据类型。因此,对型如text/xml 或者 soap 或者 application/octet-stream 和application/json格式之类的内容无法解析,如果用$_POST数组来接收就会失败!
此时可以使用$GLOBALS['HTTP_RAW_POST_DATA'] 或 file_get_contents('php://input') 来获取提交的数据
查看手册,可以发现$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST的区别:
$_POST:通过 HTTP POST 方法传递的变量组成的数组,是自动全局变量。
$GLOBALS['HTTP_RAW_POST_DATA'] :总是产生 $HTTP_RAW_POST_DATA 变量包含有原始的 POST 数据。此变量仅在碰到未识别 MIME 类型的数据时产生。$HTTP_RAW_POST_DATA 对于 enctype="multipart/form-data" 表单数据不可用。也就是说基本上$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST是一样的。但是如果post过来的数据不是PHP能够识别的,你可以用 $GLOBALS['HTTP_RAW_POST_DATA']来接收,比如 text/xml 或者 soap 等等。