php curl - проблемы с постингом в гостевую

Discussion in 'PHP' started by Flisk, 3 Jan 2012.

  1. -=Nikola=-

    -=Nikola=- New Member

    Joined:
    21 Oct 2011
    Messages:
    24
    Likes Received:
    3
    Reputations:
    0
    Все работает!
    Добавьте в функцию add_post($login,$capcha) строку
    curl_setopt($ch, CURLOPT_COOKIEFILE, 'С:\\cookie.txt');


    Код:

    PHP:
     <?php
    header
    ('Content-Type: text/html; charset=windows-1251');
    //функция получения ид картинки
    function get_sessid()
    {
        
    $ch curl_init();
        
    curl_setopt($chCURLOPT_URL,"http://mariyana.ru/gb/");
        
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
        
    curl_setopt($chCURLOPT_COOKIEJAR'C:\\cookie.txt');
        
    $result curl_exec($ch);
        
        
    preg_match("#<img src='capcha\.php\?s=(\w+)'#"$result$key);
        
    curl_setopt($chCURLOPT_URL,"http://www.mariyana.ru/gb/capcha.php?s=$key[1]"); // получаем картинку
        
    $result curl_exec($ch); // Скачиваем картинку
        
    curl_close ($ch); // Закрываем сессию
        
        
    file_put_contents('capcha.jpg'$result); // Сохраняем
        
        
    return $key[1]; // Возвращаем добытый ключ
    }

    // Параметры регистрации.
    $login 'somenick';
    //пост данные  - username=imya&icq=&email=&city=&url=&capcha=2331&text=messaga

    // Функция, производящая регистрацию 

    function add_post($login,$capcha)
    {
        
    // Все POST-параметры, которые надо отправить
        
    $post = array(
            
    'username' => $login,
            
    'icq'    => ""
            
    'email'    => "",
            
    'city'    => ""
            
    'url'    => ""
            
    'capcha'=> $capcha,
            
    'text'    => 'Какой-то текст'
        
    );
        
        
    $ch curl_init();
        
    curl_setopt($chCURLOPT_URL,"http://mariyana.ru/gb/index.php?act=add");
        
    curl_setopt($chCURLOPT_POST1);
        
    curl_setopt($chCURLOPT_POSTFIELDS$post);
        
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
        
    curl_setopt($chCURLOPT_COOKIEJAR'C:\\cookie.txt');
        
    curl_setopt($chCURLOPT_COOKIEFILE'C:\\cookie.txt');
        
        
        
    $result curl_exec($ch);
        
    curl_close ($ch);
        
        if(
    strstr($result'Сообщение успешно добавлено!'))
        {
            return 
    true;
        }
        else
        {
            return 
    false;
        }
    }

    // Выводим капчу для ввода
    if(!empty($_GET['capcha']))
    {
        
    // Регистрация
        
    if(add_post($login,$_GET['capcha']))
        {
            echo 
    'Успешно добавлено';
        }
        else
        {
            echo 
    '<b>Ошибка постинга. Видимо, опять кривой код</b>';
        }
        echo 
    '<br><a href="'.basename(__FILE__).'">Еще раз</a>';
    }
    else
    {
        
    // Если капчу еще не ввели - отображаем ее и просим ввести
        
    $key get_sessid();
        
    $form "<h2>Введите код с картинки</h2>
        <img src='capcha.jpg'>
        <form>
             <input class='input' type='text' name='capcha' size='24' maxlength='6'>
        <input type='submit' value='Добавить' class='button' />
        </form>"
    ;
        echo 
    $form;
    }
    ?>