Curl с Post не работает Php?

#php #curl #libcurl

#php #curl #libcurl

Вопрос:

ну, проблема в том, что простое это сегодня не работает!

 <?php

function cload($url, $got = array()){

//include(MDL.'socket_adapter.php');
$user_agent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0";

$default_options = array(
    'data'          => 'og',
    'post_data'        => false,
    'referer'        => false,
    'cookie'           => false,
    'auth'             => false,
    'proxy'           => false,
    'pauth'           => false,
    'returndata'      => true,
);

foreach($default_options as $opt=>$value) {
if(!empty($default_options[$opt])) {$got[$opt] = $value;    }
//if(!empty($got[$opt])) {$got[$opt] = $value;      }
}

//echo "<hr>";      print_r($got);      echo "<hr>";

$curl = curl_init();
//if(strstr($referer,"://")){
//curl_setopt ($curl, CURLOPT_REFERER, $got['referer']);}
curl_setopt ($curl, CURLOPT_URL, $url);
curl_setopt ($curl, CURLOPT_USERAGENT, $user_agent);
curl_setopt ($curl, CURLOPT_HEADER, 1);
if(isset($got['returndata'])){
curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1);
}else{
curl_setopt ($curl, CURLOPT_RETURNTRANSFER, false);
}
curl_setopt ($curl, CURLOPT_ENCODING, 'gzip, deflate');
curl_setopt ($curl, CURLOPT_SSL_VERIFYPEER, false);

    if(isset($got['post_data'])){ curl_setopt($curl ,CURLOPT_POST , true);
    curl_setpot($curl ,CURLOPT_POSTFIELDS ,$got['post_data']); }
    if(isset($got['referer'])) curl_setopt($curl,CURLOPT_REFERER, $got['referer']);
    if(isset($got['cookie'])){ if($got['cookie'] == "0"){
    curl_setopt($curl ,CURLOPT_COOKIEJAR, TBP."cookie.txt"); }//If ever needed...
    else{
    curl_setopt($curl ,CURLOPT_COOKIE, $got['cookie']); }}


    $custom_headers = array();
    $custom_headers[] = "Accept: text/html,application/xhtml xml,application/xml;q=0.9,*/*;q=0.8";
    $custom_headers[] = "Pragma: no-cache";
    $custom_headers[] = "Cache-Control: no-cache";
    $custom_headers[] = "Accept-Language: en-us;q=0.7,en;q=0.3";
    $custom_headers[] = "Accept-Charset: utf-8,windows-1251;q=0.7,*;q=0.7";
    if(isset($url_parts['user']) and isset($url_parts['pass'])) {
        $custom_headers[] = "Authorization: Basic ".base64_encode($url_parts['user'].':'.$url_parts['pass']);
    }elseif(isset($got['auth'])){
    $uj = explode(":",$got['auth']); $custom_headers[] = "Authorization: Basic ".base64_encode($uj[0].':'.$uj[1]); }
    if(isset($got['pauth'])){
        curl_setopt($curl ,CURLOPT_PROXYUSERPWD ,$pauth); }
    if(isset($got['proxy'])){
        curl_setopt($curl ,CURLOPT_PROXY ,$proxy); }

    curl_setopt($curl ,CURLOPT_HTTPHEADER, $custom_headers);
    //curl_setopt($curl, CURLINFO_HEADER_OUT, true);

    $response = curl_exec($curl);
    $info = curl_getinfo($curl);// , CURLINFO_HEADER_OUT); 
curl_close ($curl);

//echo "<hr>";  echo $info; echo "<hr>";

   return $response; }

   ?>
  

теперь, когда я использую этот код :

 <?php
$cv = load('https://localhost/a/ac.php?a=io',array('cookie' => $fbcook,'referer' => $ref,'post_data' => 'odl=lopamp;isi=837amp;io'));
echo $cv;
?>
  

но я получаю сообщение об ошибке :

Фатальная ошибка: вызов неопределенной функции curl_setpot() в C:xampphtdocsamackcurl.php в строке 41

Пожалуйста, помогите мне! почему это происходит, эта строка 42 указывает на эту строку curl_setpot($curl ,CURLOPT_POSTFIELDS ,$got['post_data']); }

Спасибо

Ответ №1:

простая опечатка: curl_setpot должно быть curl_setopt

Комментарии:

1. Я думаю, что я действительно хочу, чтобы был метод с именем curl_setpot() .

2. вы немного новичок, не так ли?

Ответ №2:

Если функция cURL не определена, то, скорее всего, cURL недоступен.

Тем не менее, я думаю, что вы имели в виду curl_setopt() .

Ответ №3:

curl_setpot должно быть curl_setopt .

Ответ №4:

Вы используете xampp, поэтому вам нужно активировать curl lib, выполнив следующие действия:

  1. Найдите каталог установки XAMPP
  2. Открыть php/php.ini (возможно C:xamppphpphp.ini или C:program filesapachefriendsxamppphpphp.ini)
  3. Выполните поиск по слову ‘curl’ и раскомментируйте (удалите начальную точку с запятой) эту строку. Перед удалением: ;extension=php_curl.dll . После удаления: extension=php_curl.dll
  4. Сохраните и закройте
  5. Открыть apache/bin/php.ini (возможно C:xamppapachephp.ini или C: program filesapachefriendsxamppapachephp.ini)
  6. Найдите curl, раскомментируйте, как и раньше (шаг 3)
  7. Сохраните и закройте
  8. Не забудьте перезапустить Apache

Удачи