Нужно реализовать авторизацию на сайте http://libertyreserve.com на PHP. Алгоритм работы скрипта я вижу таким: 1)Получаем страницу авторизации на сайте: https://www.libertyreserve.com/en/login 2)Парсим из ответа сервера: - куку __RequestVerificationToken_Lw__ - код из тега <input type="hidden" name="c" value="Gd7J5ZO3KUCimouInMPVwg" /> 3)Делаем запрос к капче с полученной кукой 4)Выводим на странице форму с скрытыми полями и капчу в base64 5)Если передан POST запрос (из формы) - делаем запрос, в котором передаем куки, данные из формы. Проблема в том, что в 5 пункте, при запросе сервер всегда отвечает "Ошибка 412". У меня два варианта почему такое происходит: 1)Я не правильно получаю каптчу (но другого варианта придумать не смог) 2)Не правильно переданы заголовки, или какого-то не хватает (с помощью сниффера сравнивал с браузером - заголовки передаются одинаковые) Прошу посмотреть в чём может быть проблема. Если требуется аккаунт, могу дать тестовый - пишите в ЛС. Вот мой код: PHP: <?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://www.libertyreserve.com/en/login'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); $a=curl_exec($ch); curl_close($ch); preg_match('#Set-Cookie: __RequestVerificationToken_Lw__=(.*?);#', $a, $b); preg_match_all('#value="(.*?)"#', $a, $c); echo $b[1]."\n\n".$c[1][4]."\n\n".$c[1][8]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://www.libertyreserve.com/captcha.jpg'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_COOKIE, '__RequestVerificationToken_Lw__='.$b[1].';'); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); $img=curl_exec($ch); curl_close($ch); echo '<form action="/" method="POST"> Логин:<br> <input type="text" name="login" value=""><br> Пароль:<br> <input type="text" name="pass" value=""><br> <img src="data:image/jpeg;base64,'.chunk_split(base64_encode($img)).'"><br> <input type="text" name="captcha"><br> <input type="hidden" name="cookie" value="'.$b[1].'"> <input type="hidden" name="c" value="'.$c[1][4].'"> <input type="hidden" name="token" value="'.$c[1][8].'"> <input type="submit" value="Отправить"> </form>'; ########################## if($_POST){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://www.libertyreserve.com/en/login'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_COOKIE, '__RequestVerificationToken_Lw__='.$_POST['cookie']); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Accept: */*', 'Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3', 'DNT: 1', 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8', 'Origin: https://www.libertyreserve.com', 'Connection: keep-alive', 'Pragma: no-cache', 'Cache-Control: no-cache' )); curl_setopt($ch, CURLOPT_REFERER, 'https://www.libertyreserve.com/en/login'); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 5.1; rv:17.0) Gecko/20100101 Firefox/17.0'); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_POSTFIELDS, 'AccountNumber='.$_POST['login'].'&RememberMe=false&Password='.$_POST['pass'].'&turingnumber='.$_POST['captcha'].'&c='.$_POST['c'].'&__RequestVerificationToken='.htmlspecialchars($_POST['token']).'&Next=Next'); echo curl_exec($ch); curl_close($ch); } ?>