Php CURL不传递post参数

Php CURL不传递post参数,php,curl,Php,Curl,我正在$url上打印$\u请求和$\u POST变量。。仅显示空数组。。 我做错了什么 function redirect_post($url, $data, $headers = null) { // Url Encoding Data $encdata = array(); foreach ($data as $key => $value) { $encdata[$key] = urlencode($value); } //

我正在$url上打印
$\u请求
$\u POST
变量。。仅显示空数组。。 我做错了什么

function redirect_post($url, $data, $headers = null) 
{
    // Url Encoding Data
    $encdata = array();

    foreach ($data as $key => $value) {
        $encdata[$key] = urlencode($value);
    }

    //url-ify the data for the POST
    $encdata_string = http_build_query($encdata);

    //open connection
    $ch = curl_init();

    //set the url, number of POST vars, POST data
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);
    curl_setopt($ch,CURLOPT_POST,count($encdata));
    curl_setopt($ch,CURLOPT_POSTFIELDS,$encdata_string);

    //execute post
    $result = curl_exec($ch);

    echo $result;
    die;
}

尝试使用以下代码。看起来您需要将URL放在curl_init中,然后使用curl_setopt发送数组来发送$data

$userIp = array('userIp'=>$_SERVER['REMOTE_ADDR']);
$url = 'http://xxx.xxx.xxx.xxx/somedirectory/somescript.php';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $userIp);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

尝试使用以下代码。看起来您需要将URL放在curl_init中,然后使用curl_setopt发送数组来发送$data

$userIp = array('userIp'=>$_SERVER['REMOTE_ADDR']);
$url = 'http://xxx.xxx.xxx.xxx/somedirectory/somescript.php';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $userIp);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

由于某些原因,如果我没有使用
curl\u setopt($ch,CURLOPT\u FOLLOWLOCATION,true),我会收到“301永久移动”错误。。也许这就是问题的原因?301或302是重定向。您可以指示CURL跟随它们到达目标URL。由于某些原因,如果我没有使用
curl\u setopt($ch,CURLOPT\u FOLLOWLOCATION,true),我会收到“301永久移动”错误。。也许这就是问题的原因?301或302是重定向。您可以指示CURL跟随它们到达目标URL。