Задать вопрос
@nikgavrilovich
front-end developer

Как авторизоваться через multi curl?

Доброго времени суток. Есть скрипт-парсер который с помощью curl проходит по страницам, в общем, обычный парсер.
Ниже функция получения страницы, а если не авторизован запрос на авторизацию
function isAuth( $data ){
    return preg_match('#<a href="/site/logout" data-method="post">Logout</a>#',$data);
}
function request($url){
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_COOKIESESSION, true); 
    curl_setopt($curl, CURLOPT_COOKIEFILE, "cookiefile"); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); 
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3'); 
    curl_setopt($curl, CURLOPT_URL, $url); 
    $data = curl_exec($curl);
    if(isAuth($data)){
        return $data;
    } else {
        preg_match('/<input type="hidden" name="_csrf" value="(.*)"/Uis',$data, $login_csrf);
        $login_csrf = $login_csrf[1];
        $post = "LoginForm[username]=****&LoginForm[password]=*****&LoginForm[rememberMe]=1&_csrf=".$login_csrf."";
        curl_setopt($curl, CURLOPT_URL, 'http://yoursite.com/login');
        curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
        $html = curl_exec($curl);
        unset($curl);
        return $html;
    }
}

В скрипте реализована авторизация, настало время и необходимо перенести скрипт на multi curl. Уже третий день сижу, но никак не могу авторизоваться в multi curl`е . Наставьте на путь истинный. Пробовал с сохранением cookies, отдельным курлом, но видимо знаний не достаточно, либо ничего либо ошибка 400 "Не удалось проверить отправляемые данные"
  • Вопрос задан
  • 47 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы