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

php 接收到之后post数据写入数据库,第1张

form表单demo:task.html

<fieldset id="setFiled">

<legend>发布任务</legend>

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

<label>任务类型:</label><br>

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

<label>酬&nbsp&nbsp金:</label><br>

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

<label>截止时间:</label><br>

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

<label>详细描述:</label><br>

<textarea maxlength="512" name="textAray" id="msgArea"></textarea><br>

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

既然你的inserttwo.php这页需要接收POST值,那你就不该用location.href这种js方法来进行页面跳转,因为这种跳转是URL的方式(也就是GET方式),而你接收的是POST方式提交的值,自然就收不到了的。

所以你可以采用ajax或者form的方式来进行跳转。

ajax的方式比较简单,比如jquery框架里,用$.post()这个方法就行了(其他ajax框架看各自的API进行 *** 作,肯定是有post方法的)。

而如果用form方式:

只需要把你上面代码中的<script>...</script>这段代码改成如下代码就行了:

<form name="xxxform" method="post" action="inserttwo.php">

<input type="hidden" name="abc" value="xxxxx" />

</form>

<script type="text/javascript">

window.onload=(function(){document.xxxform.submit()})

</script>

上面的表单中含有一个隐藏的文本框,你可以把你要POST的内容填在这里。

最后采用onload事件自动提交这个表单实现页面跳转并POST传值给inserttwo.php

php调接口都是通过curl来完成的。

下面是我项目中的一个方法:

$url 是要post的地址

$params 是参数,格式array('参数1'=>'参数1值','参数2'=>'参数2值')

$header 请求头,如果模拟浏览器访问需要

$timeout 超时时间

//公共获取指定网页内容

function curl($url,$params = array(),$header = array(),$timeout = 180){

    if(empty($url)) return $url

    $curl = curl_init()

    curl_setopt($curl, CURLOPT_URL,$url)//请求url地址

    curl_setopt($curl, CURLOPT_HTTPHEADER , $header )  //构造IP

    

    if(!empty($params) && count($params) > 0){

        curl_setopt($curl, CURLOPT_POST, true)

        

        //Request Payload格式数据

        if(isset($params['is_json']) && $params['is_json'] === true){

            unset($params['is_json'])

            $params = json_encode($params)

        }else{

            $params = http_build_query($params)

        }

        curl_setopt($curl, CURLOPT_POSTFIELDS, $params)        

    }

    //curl_setopt($curl, CURLOPT_HEADER, true)//是否返回响应头信息

    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true)//是否将结果返回

    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true)//是否重定向

    //curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1 WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36')

    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false)   // 只信任CA颁布的证书  

    //curl_setopt($curl, CURLOPT_CAINFO, $cacert) // CA根证书(用来验证的网站证书是否是CA颁布)  

    //curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2) // 检查证书中是否设置域名,并且是否与提供的主机名匹配  

    // 从证书中检查SSL加密算法是否存在

    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE)

    curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0) 

    //curl_setopt($curl, CURLOPT_HTTPHEADER, array("Expect: ")) 

    curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 )

    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $timeout)//用来告诉PHP脚本在成功连接服务器前等待多久(连接成功之后就会开始缓冲输出),这个参数是为了应对目标服务器的过载,下线,或者崩溃等可能状况;

    curl_setopt($curl, CURLOPT_TIMEOUT, $timeout)//用来告诉成功PHP脚本,从服务器接收缓冲完成前需要等待多长时间。如果目标是个巨大的文件,生成内容速度过慢或者链路速度过慢,这个参数就会很有用。

    // 自动设置Referer

    curl_setopt($curl, CURLOPT_AUTOREFERER, 1)

    //curl_setopt($curl, CURLOPT_COOKIEJAR, "D:\phpStudy\WWW\cj\cooBE66.tmp")// //写入cookie信息

    //setcookie('cookie_jar', $cookie_jar) //保存cookie路径

    $data = curl_exec($curl) //执行    

    curl_close($curl)

    return $data

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10837728.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存