Блог старого компьютера

Блог старого компьютера


Главная PHP Авторизация на яндексе с помощью CURL

Авторизация на яндексе с помощью CURL

27.03.2013 10:30 Администратор PHP
Печать PDF

Когда то давно мне необходимо было сделать скрипт управления яндекс деньгами. Который бы проверял пришедшие деньги и отправлял деньги по запросам. Данный скрипт я реализовал дня за два, но тогда воспользоваться скриптом на готовом проекте так и не удалось так как проект решили по определенным причинам закрыть. Сейчас мне понадобидлось сделать авторизацию на яндексе и я вспомнил про тот скрипт. Вытащив оттуда необходимую функцию я запстил код. Авторизация на яндексе не прошла. После изучения проблемы я понял что яндекс несколько изменил алгоритм авторизации на яндексе. Пришлось переписывать срипт.

Скрипт хочу выложить сюда, сколько он еще проработает одному яндексу известно, но все же возможно кому то пригодится (пусть даже для того чтоб изучить работу с CURL).

Как и всегда, в скрипте ничего особо сложного и внеземного нету. Все реально и просто если знать и уметь то что вы делаете. Сообственно сам скрипт в студию:

$url = "http://passport.yandex.ru/passport?mode=auth";
$login = 'werdun'; //Логин
$passwd = '*#*4342*4$%'; //Пароль
$user_cookie_file = $_SERVER['DOCUMENT_ROOT'].'/cookies.txt';
$idkey = '52413643613332H_6cSGYX'; //Фиг знает что

function auth($url){
global $user_cookie_file, $idkey, $login, $passwd;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
curl_setopt($ch, CURLOPT_COOKIEFILE, $user_cookie_file);
curl_setopt($ch, CURLOPT_COOKIEJAR, $user_cookie_file);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "from=passport&idkey=$idkey&display=page&login=$login&passwd=$passwd");
$html = curl_exec($ch);
if(!$html){
$error = curl_error($ch).'('.curl_errno($ch).')';
return "Ошибка:".$error;
}
else{
return $html;
}
curl_close($ch);
}
echo auth($url);

 Вот такой вот небольшой скрипт. В случае если вы заменили данные на свои (я имею ввиду переменную login и passwd, дле тех кто думает что я забыл стереть свои данные оговорюсь сразу в переменных ложных дынные) и яндекс не изменил алгоритм авторизации то перед вам откроется страница вашего яндекс паспорта. Как дальше использовать данный скрипт решайте сами, но спешу сообщить о том что не так уж и просто будет ходить скриптом по яндексу и собирать, отправлять нужные данные.

Вот вроде бы и все, что добавить - незнаю, спросите - расскажу.

Комментарии  

 
+1 #4 Administrator 18.01.2014 10:01
Цитирую *.ZeLanSte.*:
И postfields лучше сделать ассоциативным массивом, и формировать все это http_build_quer y(), нежели усложнять себе задачу.

Совершенно согласен с вашими коментариями.
Цитировать
 
 
+1 #3 *.ZeLanSte.* 13.01.2014 18:26
И postfields лучше сделать ассоциативным массивом, и формировать все это http_build_quer y(), нежели усложнять себе задачу.
Цитировать
 
 
0 #2 *.ZeLanSte.* 13.01.2014 18:21
Некропост такой некропост.
Цитировать
 
 
+1 #1 *.ZeLanSte.* 13.01.2014 18:20
if(!$html)? А вам не кажется, что лучше if (curl_error($ht ml)), уважаемый?
Цитировать
 

Добавить комментарий


Защитный код
Обновить

Поиск

Голосование

Что Вы думаете на счет битрикса?
 

Все материалы раздела