+ Ответить в теме
Показано с 1 по 7 из 7
  1. #1
    Пользователь
    Регистрация
    28.10.2011
    Сообщений
    119

    Отправка POST запроса

    В общем я еще только учусь, попытался тут сформировать post запрос, для покупки определенного товара в определенной браузерной игре.

    Запрос перехватывал чарльзом, сформировал на мой взгляд верно(но это не так), а ничего не покупается.

    В общем задача:
    -Доделать отправку запроса.
    -Показать где была ошибка.


    PHP код:
    $url 'http://'.$serv.'.darkorbit.bigpoint.com/indexInternal.es'// URL ????? ?? ??????? ????? ??????????????
     
    $urlTo 'http://'.$serv.'.darkorbit.bigpoint.com/indexInternal.es'// URL ?? ??????? ????? ????? POST ??????
     
    $serv c("edit5")->text// ??? ??????
     
    $post 'reloadToken=ddddddddddddd&action=internalDock&tpl=internalDockShop&subAction=buy&flashNoHelp=0&category=special&itemId=51&itemName=%D0%9A%D0%B0%D0%BC%D1%83%D1%84%D0%BB%D1%8F%D0%B6+%D1%82%D0%B8%D0%BF%D0%B0+%D0%90&shortName=%D0%94%D0%9B%D0%AF+%D0%97%D0%90%D0%A9%D0%98%D0%A2%D0%9D%D0%9E%D0%99+%D0%9C%D0%90%D0%A1%D0%9A%D0%98%D0%A0%D0%9E%D0%92%D0%9A%D0%98&paymentLink=&ammoType=&itemLevel=1&itemMaxAmount=-1&itemAmount=1&buyItemName=&itemPrice=500+%D1%83%D1%80.&sellPrice=500+%D1%83%D1%80./'// POST данные
     
     
    $ch curl_init(); // Инициализируем сеанс CURL
     
    curl_setopt($chCURLOPT_URL$url); // Заходим на сайт
     
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue); // Делаем так, чтобы страница не выдавалась сразу в поток, а можно было ее записать в переменную
     
    $html curl_exec($ch); // Имитируем заход на сайт
     
     
    curl_setopt($chCURLOPT_URL$urlTo); // Устанавливаем адрес куда будем слать POST данные
     
    curl_setopt($chCURLOPT_COOKIEJAR'cookie.txt'); // Записываем cookies в файл, чтобы потом можно было их считать
     
    curl_setopt($chCURLOPT_COOKIEFILE'cookie.txt'); // Теперь читаем cookies с файла
     
    curl_setopt($chCURLOPT_POSTtrue); // Говорим, что информация будет отправляться методом POST
     
    curl_setopt($chCURLOPT_POSTFIELDS$post); // Передаем POST данные
     
    curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue); // Иногда бывает, что после отправки данных происходит редирект heaer('Location:...').
     // Этот параметр говорит о то, чтобы мы следовали за ними, а не оставались на месте после отправки данных
     
     
    $html curl_exec($ch); // Записываем пришедшие данные в переменную
     
    curl_close($ch); // Закрываем сеанс работы CURL
     
    echo $html// И вуаля Выводим авторизованную страницу 

  2. #2
    А может сначала нужно сделать авторизацию ( вход в игру ), а потом уже делать что то!

  3. #3
    Мастер Аватар для forumrulez
    Регистрация
    16.10.2010
    Адрес
    Киев
    Сообщений
    1,078
    Раздел немного не тот

  4. #4
    Пользователь
    Регистрация
    28.10.2011
    Сообщений
    119
    Цитата Сообщение от malish Посмотреть сообщение
    А может сначала нужно сделать авторизацию ( вход в игру ), а потом уже делать что то!
    Я конечно не про, но по идее, пользователь у меня уже авторизовался в браузере или это не зависимые вещи?

    Цитата Сообщение от forumrulez Посмотреть сообщение
    Раздел немного не тот
    Я готов заплатить за обучение=)

  5. #5
    Мастер Аватар для forumrulez
    Регистрация
    16.10.2010
    Адрес
    Киев
    Сообщений
    1,078
    Да независимое, курлу нужны куки из файла cookie.txt например, а браузер тут не причем

  6. Пользователь сказал cпасибо:

    userinit (28.01.2012)

  7. #6
    Пользователь
    Регистрация
    28.10.2011
    Сообщений
    119
    Цитата Сообщение от forumrulez Посмотреть сообщение
    Да независимое, курлу нужны куки из файла cookie.txt например, а браузер тут не причем
    Мда, сложная ситуация получается - в данной игре при входе выбивает с аккаунта если кто-то еще сидит, а я пишу клиент(пытаюсь) тогда получается если curl каждый раз требует авторизации то после отправки пакета - пользователя будет выбивать с аккаунта, проблема вообще решаема?

  8. #7
    Админ Аватар для vGhost
    Регистрация
    27.07.2011
    Адрес
    Самара
    Сообщений
    2,033
    Решаема. Но только через браузер хромиум. Извиняйте за "скудный" ответ, но писать пример как сделать - не очень хочется, просто даю направление куда копать. Если захотите, сможете разобраться.
    Суть идеи в том, что через хромиум можно внедрять в открытую страницу свои скрипты, через которые получить те же кукисы от залогиненного пользователя и сформировать curl запрос используя оные.
    Код:
    c("chromium1")->executeJs('яваскрипт код');
    какой javascript нужен для получения кукисов поищите в гугле.

    __________________________________________________ ________
    Угу, угу... А потом достал из морозильной камеры - и степлером его, степлером!
    Для новичков
    __________________________________________________ ________
    Я практически совсем не задаю вопросов, не думали почему? Потому что я пользуюсь поиском и всегда нахожу ответы на свои вопросы!

  9. Пользователь сказал cпасибо:

    userinit (28.01.2012)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения