phppost数据提交 phppost请求

用php做个post提交

看来楼主的截图,写的纯粹的对curl的运用,个人写个简化版的!!

创新互联建站是一家集网站建设,上城企业网站建设,上城品牌网站建设,网站定制,上城网站建设报价,网络营销,网络优化,上城网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

$curl是接口页面。。。作用是取数据然后传递给本页面!!这个页面不是来源页面,只是一个接口文件而已!!如果你连这个页面都不想要,那就只能在本页面自己填写获取数据的代码了!!也就不用使用到post数据了!!

$post_val是post提交所需的数据,如果为空,那就是get获取数据,也就是说$curl要自带参数,这个要看你接口页面的程序所定了!!

例子:

1.php

$b = $_GET['k'];

//这边获取的就是2.php抛出来的数据。。。

$get_value = curl_file_get_contents(‘2.php’,"ct=28lm=0word=".$b."co=23");

var_dump($get_value);//这边就是你想要的代码。。随便你怎么处理了!!

//这个是curl的精简版。。。不用那么多代码

function curl_file_get_contents($curl,$post_val="")

{

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $curl);

curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

if($post_val)

{

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $post_val);

}

$r = curl_exec($ch);

curl_close($ch);

return $r;

}

2.php(接口文件,也相当于把方法写在另一个文件,通过url调用此方法并回传值给1.php!!多用于2个文件不在同一程序内,引用(include)不了,又懒得自己再写个方法,从而通过这种方法获取,比如说淘宝接口)

$get_key = $_POST['word']; //这边就指明了只用能post方式获取数据

..................(这边就是通过获取的$get_key来获取数据,并赋值与$value)......

return $value; //这边把数据抛给1.php(谁调用接口的就抛给谁)

这样写的好处是,假如获取$value的代码很长,这样写可以减少代码量!!不在同一个服务器或者框架下面的程序也可以调用。。。。(同一个框架下的代码可以用include引入进来!!)

先写到着吧!!!还有不懂的可以自己百度下或者追问。。我看到了会继续回答的!!

php 怎么POST获取数据?

方法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']中

求助PHP如何POST提交数据

用PHP向服务器发送HTTP的POST请求,代码如下:

?php

/**    

* 发送post请求    

* @param string $url 请求地址    

* @param array $post_data post键值对数据    

* @return string    

*/    

function send_post($url, $post_data) {    

$postdata = http_build_query($post_data);    

$options = array(    

'http' = array(    

'method' = 'POST',    

'header' = 'Content-type:application/x-www-form-urlencoded',    

'content' = $postdata,    

'timeout' = 15 * 60 // 超时时间(单位:s)    

)    

);    

$context = stream_context_create($options);    

$result = file_get_contents($url, false, $context);             

return $result;    

}

使用的时候直接调用上面定义的send_post方法:

$post_data = array(

'username' = 'username',

'password' = 'password'

);

send_post('网址', $post_data);

PHP里模拟Post提交是什么意思?

//这是我写的封装类,也就是模拟POST提交

//$durl也就是URL地址,比如

//$timeout超时时间

//$data 为POST数组

//模拟POST提交的用途,采集数据,模拟用户登录(为什么现在登录需要验证码,不是为了测你智商..

更不是考你的眼力,而防止你模拟登录..用暴力破解法强行破解密码)

function curl_file_post_contents($durl, $timeout = 5, $data) {

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $durl);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);

curl_setopt($ch, CURLOPT_USERAGENT, _USERAGENT_);

curl_setopt($ch, CURLOPT_REFERER, _REFERER_);

curl_setopt($ch, CURLOPT_POST, 1); //设置为POST传输

curl_setopt($ch, CURLOPT_POSTFIELDS, $data); //添加post数据

$r = curl_exec($ch);

var_dump($ch);

if ($r === false) {  //判断错误

echo curl_error($ch);

}

$info = curl_getinfo($ch);  //能够在cURL执行后获取这一请求的有关信息

curl_close($ch);

return $r;

}

php 接收到之后post数据写入数据库

form表单demo:task.html

fieldset id="setFiled"

legend发布任务/legend

form action="registr.php" method="post" id="steForm"

label任务类型:/labelbr

input type="text" name="type"  id="taskType" placeholder="请选择任务类型"/br

label酬nbsp;nbsp;金:/labelbr

input type="number" name="money" id="forMoney" min="1" max="1000"/label元/labelbr

label截止时间:/labelbr

input type="datetime" name="time" id="timeSubmit"/span data-year="" data-month="" data-date="" id="showDate"/spanbr

label详细描述:/labelbr

textarea maxlength="512" name="textAray" id="msgArea"/textareabr

input type="submit" name="subMit" id="forSub" value="点击发布" /

/form

扩展资料

php接收POST数据的三种方式

1、$_POST 方式接受数据

$_POST 方式是由通过HTTP的POST方法传递过来的数据组成的数组,是一个自动全局变量。

注:只能接收Content-Type:application/x-www-form-urlencode提交的数据。也就是只能接收表单过来的数据。

2、GLOBLES[‘HTTP_RAW_POST_DATA’]

如果访问原始POST数据不是php能够识别的文档类型,比如:text/xml 或者soap等等,可以用$GLOBLES[‘HTTP_RAW_POST_DATA’]来接收,$HTTP_RAW_POST_DATA变量包含有原始POST数据。此变量仅在碰到未识别的MIME数据时产生。

注:$HTTP_RAW_POST_DATA对于enctype=”multipart/form-data”表单数据不可用,也就是说使用$HTTP_RAW_POST_DATA无法接受网页表单post过来的数据。

3、file_get_contents(“php://input”);

如果访问原始POST数据,更好的方法是使用file_get_content(“php://input”);对于未指定Content-Type的POST数据,可以使用该方法读取POST原始数据,包括二进制流也可以和$HTTP_RAW_POST_DATA比起来。它带来的生存眼里更小,并且不需要任何特殊的php.ini设置。

注:php://input不能用于 enctype=”multipart/form-data”

例如:$postStr = file_get_contents("php://input"); //获取POST数据


网站栏目:phppost数据提交 phppost请求
转载注明:http://myzitong.com/article/hehoie.html