Php 卷曲度+;接受$u POST数据
我正在使用Curl执行以下操作:Php 卷曲度+;接受$u POST数据,php,curl,Php,Curl,我正在使用Curl执行以下操作: $authentication = $_POST['username'] . ':' . $_POST['passwd']; $params = array( 'id' => '12', 'field1' => 'field1text', 'field2' => 'field2text', 'field3' => 'field3text'
$authentication = $_POST['username'] . ':' . $_POST['passwd'];
$params = array(
'id' => '12',
'field1' => 'field1text',
'field2' => 'field2text',
'field3' => 'field3text',
'screenshots' => 'screenshots',
'videoLinks' => 'videoLinks'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.domain.com/scripts/curl/index_curl_general.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt($ch, CURLOPT_POST, true );
curl_setopt($ch, CURLOPT_USERPWD,$authentication);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_REFERER,'http://www.domain.com.au');
curl_setopt($ch, CURLOPT_POSTFIELDS,$params);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/plain'));
$result = curl_exec($ch);
curl_close($ch);
echo $result;
我发现我可以在服务器端的index_curl_index.php中看到这个代码的用户名和密码
print $_SERVER['PHP_AUTH_USER'];
print $_SERVER['PHP_AUTH_PW'];
但我似乎可以看到$params
数据。我尝试了以下方法:
var_dump($_POST);
print_r($_POST);
但它始终显示为空数组。如何显示这些数据?有没有更好的方法来传递这些数据
curl_setopt($ch, CURLOPT_POSTFIELDS,$temp);
应该是
curl_setopt($ch, CURLOPT_POSTFIELDS,$params);
是否有一种“更好”的方式来传递数据在很大程度上取决于您想要实现的目标。cURL是一个非常强大的库,您可以使用它完成几乎所有的事情。大多数情况下,你还可以在其中定义HTTP内容,所以有些人认为卷曲是多余的。就我个人而言,我更喜欢
file\u get\u contents
(实际上没有具体原因),但我不知道有任何性能差异等。您希望将$params
作为CURLOPT\u POSTFIELDS
(而不是$temp
)传递你能把你的$temp
也放进去吗?我现在已经更新了这个问题。。。我尝试了$params,但在接收端仍然得到一个空数组。还有其他想法吗?可能需要cookies(curl\u setopt($ch,CURLOPT\u COOKIEJAR,'cookies.txt');
curl\u setopt($ch,CURLOPT\u COOKIEFILE,'cookies.txt');
)。你得到了什么HTTP代码?(在exec()之后:$details=curl\u getinfo($ch);echo$details['http\u code'];
)curl\u setopt($ch,CURLOPT\u COOKIEFILE,'cookies.txt');$result=curl\u exec($ch);$details=curl\u getinfo($ch);echo$details['http_code'];卷曲关闭($ch);详细信息;我在上面加了200200回来。。。这对你有什么意义吗?