phppost数据流 php提交post数据

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数据

求助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数据的问题

在php中要模拟post请求数据提交我们会使用到curl函数,下面我来给大家举几个curl模拟post请求提交数据例子有需要的朋友可参考参考。

注意:curl函数在php中默认是不被支持的,如果需要使用curl函数我们需在改一改你的php.ini文件的设置,找到php_curl.dll去掉前面的";"就行了

例1

?php

$uri = "";

// 参数数组

$data = array (

'name' = 'tanteng'

// 'password' = 'password'

);

$ch = curl_init ();

// print_r($ch);

curl_setopt ( $ch, CURLOPT_URL, $uri );

curl_setopt ( $ch, CURLOPT_POST, 1 );

curl_setopt ( $ch, CURLOPT_HEADER, 0 );

curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );

curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );

$return = curl_exec ( $ch );

curl_close ( $ch );

print_r($return);

接受php页面远程服务器:

?php

if(isset($_POST['name'])){

if(!empty($_POST['name'])){

echo '您好,',$_POST['name'].'!';

}

}

?

例2

用CURL模拟POST请求抓取邮编与地址

完整代码: 代码如下

#!/usr/local/php/bin/php

?php

$runtime = new runtime ();

$runtime-start ();

$cookie_jar = tempnam('/tmp','cookie');

$filename = $argv[1];

$start_num= $argv[2];

$end_num = $argv[3];

for($i=$start_num; $i$end_num; $i++){

$zip = sprintf('6s',$i);

$fields_post = array(

'postcode' = $zip,

'queryKind' = 2,

'reqCode' = 'gotoSearch',

'search_button.x'=37,

'search_button.y'=12

);

$fields_string = http_build_query ( $fields_post, '' );

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "URL?reqCode=gotoSearchqueryKind=2postcode=".$zip);

curl_setopt($ch, CURLOPT_HEADER, true);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120 );

curl_setopt($ch, CURLOPT_REFERER, $refer );

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers_login );

curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar );

curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar );

curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);

curl_setopt($ch, CURLOPT_POST, 1); // 发送一个常规的Post请求

curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string );

$data = curl_exec($ch);

preg_match_all('/id="table1"[s]*?tr[s]*?td class="maintext"[sS]*?/td[s]*?/tr/', $data, $matches);

if (!$handle = fopen($filename, 'a+')) {

echo "不能打开文件 $filename";

echo "n";

exit;

}

if (fwrite($handle, $matches[0][1]) === FALSE) {

echo "不能写入到文件 $filename";

echo "n";

exit;

}

echo "成功地将 $somecontent 写入到文件$filename";

echo "n";

fclose($handle);

curl_close($ch);

}

class runtime

{

var $StartTime = 0;

var $StopTime = 0;

function get_microtime()

{

list($usec,$sec)=explode(' ',microtime());return((float)$usec+(float)$sec);

}

function start()

{

$this-StartTime=$this-get_microtime();

}

function stop(){

$this-StopTime=$this-get_microtime();

}

function spent()

{

return ($this-StopTime-$this-StartTime);

}

}

$runtime-stop ();

$con = 'Processed in'.$runtime-spent().'seconds';

echo 'Processed in'. $runtime-spent().'seconds';

模拟POST请求 提交数据或上传文件 .

.

代码如下 复制代码

发送POST请求

function execUpload(){

$file = '/doucment/Readme.txt';

$ch = curl_init();

$post_data = array(

'loginfield' = 'username',

'username' = 'ybb',

'password' = '123456',

'file' = '@d:usrwwwtranslatedocumentReadme.txt'

);

curl_setopt($ch, CURLOPT_HEADER, false);

//启用时会发送一个常规的POST请求,类型为:application/x-www-form-urlencoded,就像表单提交的一样。

curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch,CURLOPT_BINARYTRANSFER,true);

curl_setopt($ch, CURLOPT_POSTFIELDS,$post_data);

curl_setopt($ch, CURLOPT_URL, '');

$info= curl_exec($ch);

curl_close($ch);

print_r($info);

}

2.

function handleUpload(){

print_r($_POST);

echo '===file upload info:';

print_r($_FILES);

}

■cURL 函数

■curl_close — 关闭一个cURL会话

■curl_copy_handle — 复制一个cURL句柄和它的所有选项

■curl_errno — 返回最后一次的错误号

■curl_error — 返回一个保护当前会话最近一次错误的字符串

■curl_exec — 执行一个cURL会话

■curl_getinfo — 获取一个cURL连接资源句柄的信息

■curl_init — 初始化一个cURL会话

■curl_multi_add_handle — 向curl批处理会话中添加单独的curl句柄

■curl_multi_close — 关闭一组cURL句柄

■curl_multi_exec — 运行当前 cURL 句柄的子连接

■curl_multi_getcontent — 如果设置了CURLOPT_RETURNTRANSFER,则返回获取的输出的文本流

■curl_multi_info_read — 获取当前解析的cURL的相关传输信息

■curl_multi_init — 返回一个新cURL批处理句柄

■curl_multi_remove_handle — 移除curl批处理句柄资源中的某个句柄资源

■curl_multi_select — 等待所有cURL批处理中的活动连接

■curl_setopt_array — 为cURL传输会话批量设置选项

■curl_setopt — 设置一个cURL传输选项

■curl_version — 获取cURL版本信息

PHP怎么发送POST数据

放到form里面

form action='abc.php' method='post'

input type='hidden' value='6d5ecc35ad679c37c8f029f587ce3940' name='sign'

input type='hidden' value='MD5' name='sign_type'

input type='submit'

/form

点击那个submit按钮就可以了

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中,表单POST提交的数据是存放在$_POST变量中.$_POST变量是一个数组,它是一个以表单字段名作索引的数组.比如有以下表单:

form method="post"

p姓名:input type="text" name="name" value=""/p

p年龄:input type="text" name="age" value=""/p

pinput type="submit" value="提交"/p

/form

输入值后提交,按你的要求,在php层处理输出提交的内容,那么可以这样:

?php

echo '你的姓名是:'.$_POST['name'];//其中$_POST['name']中存放的是上面表单名为name的值

echo '你今年'.$_POST['age'].'岁';//其中$_POST['age']中存放的是上面表单名为age的值

?

如果字段内容很多,有时就可能需要循环处理.

foreach($_POST as $val){

echo $val;

}

或直接:

print_r($_POST);

当然处理或输出的格式很多,以上只是一个示例.


分享标题:phppost数据流 php提交post数据
新闻来源:http://ybzwz.com/article/hpjpse.html