Керл с постом не работает Php? - PullRequest
2 голосов
/ 10 октября 2011

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

<?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=lop&isi=837&io'));
echo $cv;
?>

, но я получаю ошибку:

Неустранимая ошибка: вызов неопределенной функции curl_setpot () в C: \ xampp \ htdocs \ a \ mack \ curl.php в строке 41

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

спасибо

Ответы [ 4 ]

5 голосов
/ 10 октября 2011

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

3 голосов
/ 10 октября 2011

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

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

3 голосов
/ 10 октября 2011

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

2 голосов
/ 17 декабря 2011

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

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

Удачи

...