Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   автоматическое заполнение формы (https://javascript.ru/forum/server/34203-avtomaticheskoe-zapolnenie-formy.html)

l-liava-l 24.12.2012 13:27

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

Так, насколько я понял нужно слать пост или гет запросы в action нужной формы...

pikko 24.12.2012 14:15

правильно понял: надо внимательно изучить логику этой страницы с формой (там вполне может быть замешан js) и эмулировать действия браузера ( включая http-заголовки, куки и т.п. )

pikko 24.12.2012 14:20

вот ещё полезная ссылка: http://xdan.ru/Pishem-javascript-par...Extension.html
всё можно сделать на js как приложение к google-chrome, и это, вероятно, будет намного проще чем на php(который знаешь плохо)

l-liava-l 24.12.2012 14:32

Цитата:

всё можно сделать на js как приложение к google-chrome, и это, вероятно, будет намного проще чем на php(который знаешь плохо)
на js нельзя
Авторизоваться нужно в https://visa.qiwi.com/payment/main.action
Я так понимаю нужно использовать curl, отправлять запрос нужно прямо в main.action, но как это сделать я пока недогнал

Deff 24.12.2012 14:34

Цитата:

Сообщение от l-liava-l
на js нельзя

Ну моно через яхо трубу post или get запросом залогиниться (нуно проверять, посколь не все сайты доступны для яхо

pikko 24.12.2012 14:43

на js это будет в стопитсот раз проще — браузер сделает за тебя большую часть работы ( включая куки, хттп-заголовки и исполнение всего js этой страницы ).
попробуй заполнить необходимые поля и эмулировать нажатие "Войти".
если же
Цитата:

Сообщение от l-liava-l
на js нельзя

по идеологическим причинам, то сочувствую — серверным скриптом это будет сделать намного сложней

l-liava-l 24.12.2012 14:50

Цитата:

на js это будет в стопитсот раз проще — браузер сделает за тебя большую часть работы ( включая куки, хттп-заголовки и исполнение всего js этой страницы ).
попробуй заполнить необходимые поля и эмулировать нажатие "Войти".
если же
Сообщение от l-liava-l
на js нельзя
по идеологическим причинам, то сочувствую — серверным скриптом это будет сделать намного сложней
нельзя потому что деньги стырят, мне нужно чтобы именно сервер выполнял все действия а не клиент, ибо скрипт будет выполнятся у любого человека посетившего сервис, браузер вобще не должен фигурировать.
<?php
function get_t($cookie) 
{ 
   //получаем идентификатор операции 
   preg_match('|\"t\":\"(.*?)\"|', curl('https://w.qiwi.com/user/person/account/transfer.action', $cookie), $tmp); 
   return $tmp[1]; 
} 

$number = ' '; 
$password = ' '; 

//авторизация 
preg_match('|Set-Cookie: (.*?);|', curl('https://w.qiwi.com/auth/login.action?source=MENU&login=%2B'.$number.'&password='.$password, null, array('Accept: application/json, text/javascript, */*; q=0.01', 'X-Requested-With: XMLHttpRequest')), $tmp); 
$cookies = $tmp[1]; 

function curl($url, $cookie = false, $httpheaders = false) 
{ 



}

?>
Вот надыбал авторизацию, а как проверить что мы залогинились?

l-liava-l 24.12.2012 19:26

По чуть чуть продвигаюсь, авторизовыатся научился, а как подставить нужные значения в нужные поля формы и нажать на кнопку подтвердить? а то напрямую слать запросы не получится номер транзакции постоянно разный

pikko 25.12.2012 17:46

// в код страницы не смотрел — нет времени,
// но, вероятно как-то так:

document.getElementById('нужное поле формы').value = 'нужное значение';
функция-обработчик-онклик-кнопки-подтвердить();

// ты это спрашивал?
// :)

// UPD: хотя я гоню — этож скрипты с разных доменов
// так просто не получится

// UPD: UPD: можно посмотреть что, куда и как отправляет
// функция-обработчик-онклик-кнопки-подтвердить();
// и попробовать отправить туда же нужные данные самому


и я тут подумал — может у киви какой-то апи есть для сторонних разработчиков? что бы на спичках и изоленте не городить карточные домики.


Часовой пояс GMT +3, время: 10:41.