Народ помогите с CURL

Discussion in 'PHP' started by bassay, 11 Dec 2010.

  1. bassay

    bassay Banned

    Joined:
    27 Apr 2009
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    есть скрипт на PHP
    он посылает три запроса на сайт DLE:

    1. POST Авторизация // работает
    2. GET получаю user_hash // работает, далее собираю все данные
    3. POST отправить новость на сайт

    Помогите разобраться с последним, голову уже сломал помогите найти ошибку. Пробовал убрать пустые переменные, отправлял с реффером и без, отключал и включал urlencode().

    PHP:
    $host 'http://localhost/dle2';
    $url $host.'/admin.php';

    $title 'первая новость из скрипта';
    $title urlencode('первая новость из скрипта');

    $short 'первая новость из скрипта short';
    $short urlencode('первая новость из скрипта short');

    $full 'первая новость из скрипта full';
    $full urlencode('первая новость из скрипта full');

    $cpu $title;
    $desc 'первая новость из скрипта desc';
    $key 'первая новость из скрипта key';
    $referer $host.'/admin.php?mod=addnews&action=addnews';

    $postnews ='
    title='
    .$title.'&
    newdate=&
    allow_date=yes&
    category%5B%5D=1&
    bbfont=0&
    bbsize=0&
    short_story='
    .$short.'&
    full_story='
    .$full.'&
    approve=1&allow_main=1&allow_comm=1&allow_rating=1&
    allow_br=1&
    vote_title=&
    frage=&
    vote_body=&
    catalog_url=&
    alt_name=&
    tags=&
    expires=&
    expires_action=0&
    meta_title=&
    descr=&
    keywords=&
    group_extra%5B2%5D=0&
    group_extra%5B3%5D=0&
    group_extra%5B4%5D=0&
    group_extra%5B5%5D=0&
    mod=addnews&
    action=doaddnews&
    user_hash='
    .$user_hash
    ;

    curl($url$postnews);

    function 
    curl($url=''$post=''$referer=''$proxy='')
    {
        
    $cl curl_init();
        
    curl_setopt($clCURLOPT_URL$url);
        
    curl_setopt($clCURLOPT_RETURNTRANSFER,1);
        
    curl_setopt($clCURLOPT_USERAGENT$useragent);
        
    curl_setopt($clCURLOPT_COOKIEJAR,  'C:\xampp\htdocs\test2\my_cookies.txt');
        
    curl_setopt($clCURLOPT_COOKIEFILE'C:\xampp\htdocs\test2\my_cookies.txt');

        if(!empty(
    $post)) {
            
    curl_setopt($clCURLOPT_POST1);
            
    curl_setopt($clCURLOPT_POSTFIELDS$post);
                    }
        else{
            
    curl_setopt($clCURLOPT_POST0);
        }

        if(!empty(
    $referer)){
            
    curl_setopt($clCURLOPT_REFERER$referer);
            }
        else{
            
    curl_setopt($cl,CURLOPT_REFERER1);
        }

        if(!empty(
    $proxy)) {
            
    curl_setopt($clCURLOPT_PROXY$proxy);
        }

        
    $ex=curl_exec($cl);
        
    curl_close($cl);
        return 
    $ex;
    }
    сам POST запрос:
    Code:
    Host: localhost
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 ( .NET CLR 3.5.30729; .NET4.0E)
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,* /*;q=0.8
    Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip,deflate
    Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
    Keep-Alive: 115
    Connection: keep-alive
    Referer: http://localhost/dle2/admin.php?mod=addnews&action=addnews
    Cookie: PHPSESSID=8rh4foblo5tnbdapr0mv6ullv1
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 438
    
    title=title&newdate=&allow_date=yes&bbfont=0&bbsize=0&short_story=short&bbfont=0&bbsize=0&full_story=fulka&approve=1&allow_main=1&allow_comm=1&allow_rating=1&allow_br=1&vote_title=&frage=&vote_body=&catalog_url=&alt_name=&tags=&expires=&expires_action=0&meta_title=&descr=&keywords=&group_extra%5B2%5D=0&group_extra%5B3%5D=0&group_extra%5B4%5D=0&group_extra%5B5%5D=0&mod=addnews&action=doaddnews&user_hash=4865585e352731355494d2f41c1e05ba
    
     
  2. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    Подозреваю что ошибка в $postnews из-за разрыва строк в значении переменной.
    PHP:
    CURLOPT_COOKIEJAR,  'C:\xampp\htdocs\test2\my_cookies.txt')
    ололошеньки =))
     
  3. bassay

    bassay Banned

    Joined:
    27 Apr 2009
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    окей попробую!

    а это тут причем?
    PHP:
    CURLOPT_COOKIEJAR'C:\xampp\htdocs\test2\my_cookies.txt')
     
  4. bassay

    bassay Banned

    Joined:
    27 Apr 2009
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Спасибо все работает!