Перейти к содержимому

Реферальная программа Мегаплана

Партнерская программа Kredov

Можно ли такую задачу реализовать с помощью пхп?

#21 web-rabbit

web-rabbit
    Topic Starter
  • Пользователь
  • 59 сообщений
  • Репутация: 0
0

Отправлено 08 Май 2010 - 21:13

Пользователь будет работать с сайтом-снайпером, но в процессе этой работы,
скрипт всё равно обращается к стороннему сайту (добавление лотов в таблицу + на сайте снайпере должны отображатся данные об аукционах в реальном времени..)
1. Получается без куков не обойтись?..

На сторонний сайт отправляется запрос GET.
2. Значит от пользователя мне тоже получать данные этим же методом?

----------------------------------------
Вот что показал ФаерБаг:

GET
http://srx.de.ebayrtm.com/rtm?RtmCmd &p= &ph= &ev= &a= &l= &g= &uf= &c= &ord= &e= &z= &bw= &cg= &enc=
&v= &cb= &_vrdm= (значения я намеренно поубирала)

Заголовки запроса
Host srx.de.ebayrtm.com
User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9
Accept */*
Accept-Language ru,en-us;q=0.7,en;q=0.3
Accept-Encoding gzip,deflate
Accept-Charset windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive 300
Connection keep-alive
Referer [url="http://www.masterwebs.ru/go.php?url=http://my.ebay.de/ws/eBayISAPI.dll?MyEbayBeta&MyEbay=&gbh=1&guest=1"]http://my.ebay.de/ws/eBayISAPI.dll?MyEbayB...h=1&guest=1[/url]
Cookie PS=T.0; A01=..; M01=..; TC01=..; RUA=..; RUP=..; RUATD=..; HT=..

---------------------------------------

3. Подскажите как это правильно использовать?


  • 0

#22 reaboom

reaboom
  • Пользователь
  • 40 сообщений
  • Репутация: 0

Отправлено 08 Май 2010 - 21:35

Получается без куков не обойтись?..

Да, не обойтись. Раз скрипт обращается к стороннему сайту.

2. Значит от пользователя мне тоже получать данные этим же методом?

Нет. Вы отправляете запросы GET-методом. А что бы обработать полученную с сайта информацию, нужно парсить HTML-код, который он возвращает. Т.е., например, при авторизации, вы отправляете нужные логин и пароль GET-методом, в результате получаете HTML-код. Проверяете, HTML-код, на предмет наличия сообщения вроде "Ура! Вы авторизировались". Если сообщение есть, то сохраняете Cookie, которые возвращает сервер, и в дальнейшем обращаетесь к серверу с ними.

----------------------------------------
Вот что показал ФаерБаг:
GET
[url="http://www.masterwebs.ru/go.php?url=http://srx.de.ebayrtm.com/rtm?RtmCmd"]http://srx.de.ebayrtm.com/rtm?RtmCmd[/url] &p= &ph= &ev= &a= &l= &g= &uf= &c= &ord= &e= &z= &bw= &cg= &enc=
&v= &cb= &_vrdm= (значения я намеренно поубирала)

Заголовки запроса
Host srx.de.ebayrtm.com
User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9
Accept */*
Accept-Language ru,en-us;q=0.7,en;q=0.3
Accept-Encoding gzip,deflate
Accept-Charset windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive 300
Connection keep-alive
Referer [url="http://www.masterwebs.ru/go.php?url=http://my.ebay.de/ws/eBayISAPI.dll?MyEbayB...h=1&guest=1"]http://my.ebay.de/ws/eBayISAPI.dll?MyEbayB...h=1&guest=1[/url]
Cookie PS=T.0; A01=..; M01=..; TC01=..; RUA=..; RUP=..; RUATD=..; HT=..
---------------------------------------

3. Подскажите как это правильно использовать?
Это запрос авторизации?
  • 0

#23 web-rabbit

web-rabbit
    Topic Starter
  • Пользователь
  • 59 сообщений
  • Репутация: 0

Отправлено 08 Май 2010 - 21:55

Извините, я наверно, некорректно выразилась или задаю идиотский вопрос..
Переформулирую:
На сайте снайпера пользователь заполняет форму авторизации. Отправка данных от пользователя --> моему сайту каким методом должна быть организована?
Как-то так?

<!-- Шаблон блока авторизации -->
<?include "comp.php"?>
<form method="get">
<h2>Логин:</h2><input type=text name="new[login]"><br>
<h2>Пароль:</h2><input type=text name="new[password]"><br><br>
<input type="submit" name="doAdd" value="Войти!">

Это запрос авторизации?


Да. А что не похож? :)
в URL параметр &l - это логин..
  • 0

#24 reaboom

reaboom
  • Пользователь
  • 40 сообщений
  • Репутация: 0

Отправлено 08 Май 2010 - 22:09

Ну, так это не суть важно. Используйте, то как вам удобно. Ведь, все равно вам придется в ручную в cURL устанавливать значения, и неважно откуда вы их возьмете. Хоть из базы данных.

Да. А что не похож?
в URL параметр &l - это логин..

Нет все нормально :) Просто, трудно понять, из названия параметров что за запрос.

По поводу, как правильно это использовать. Вам пример кода нужен? (сейчас сходу не смогу написать, с cURL'ом не работал уже полгода).
  • 0

#25 web-rabbit

web-rabbit
    Topic Starter
  • Пользователь
  • 59 сообщений
  • Репутация: 0

Отправлено 10 Май 2010 - 20:11

КАК ТАКОЕ МОЖЕТБЫТЬ? :(
Когда с ФаерБагом делала авторизацию на eBay - отправлялись GET-запросы..
А на сайте http://developer.ebay.com/ нашла код сессии - там метод POST используется..

В голове моей случился коллапс..
помогите - подскажите,
толи я дурак, толи лыжи не едут :(
  • 0

#26 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 10 Май 2010 - 20:44

web-rabbit,

А на сайте http://developer.ebay.com/ нашла код сессии - там метод POST используется..

Покажите где вы там нашли, может не то нашли.
То что форма авторизации eBay работает с GET, а API авторизации eBay работает с POST тут нет ничего сверхестественного. Почему два разных скрипта должны работать по одному и тому же алгоритму?
  • 0

#27 web-rabbit

web-rabbit
    Topic Starter
  • Пользователь
  • 59 сообщений
  • Репутация: 0

Отправлено 10 Май 2010 - 21:04

Вот такой код. Оно или не оно?

<?php
class eBaySession
{
private $requestToken;
private $devID;
private $appID;
private $certID;
private $serverUrl;
private $compatLevel;
private $siteID;
private $verb;

public function __construct($userRequestToken, $developerID, $applicationID, $certificateID,
$serverUrl, $compatabilityLevel, $siteToUseID,
$callName)
{
$this->requestToken = $userRequestToken;
$this->devID = $developerID;
$this->appID = $applicationID;
$this->certID = $certificateID;
$this->compatLevel = $compatabilityLevel;
$this->siteID = $siteToUseID;
$this->verb = $callName;
$this->serverUrl = $serverUrl;
}

public function sendHttpRequest($requestBody)
{
//build eBay headers using variables passed via constructor
$headers = $this->buildEbayHeaders();

//initialise a CURL session
$connection = curl_init();
//set the server we are using (could be Sandbox or Production server)
curl_setopt($connection, CURLOPT_URL, $this->serverUrl);

//stop CURL from verifying the peer's certificate
curl_setopt($connection, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($connection, CURLOPT_SSL_VERIFYHOST, 0);

//set the headers using the array of headers
curl_setopt($connection, CURLOPT_HTTPHEADER, $headers);

//set method as POST
curl_setopt($connection, CURLOPT_POST, 1);

//set the XML body of the request
curl_setopt($connection, CURLOPT_POSTFIELDS, $requestBody);

//set it to return the transfer as a string from curl_exec
curl_setopt($connection, CURLOPT_RETURNTRANSFER, 1);

//Send the Request
$response = curl_exec($connection);

//close the connection
curl_close($connection);

//return the response
return $response;
}

private function buildEbayHeaders()
{
$headers = array (
//Regulates versioning of the XML interface for the API
'X-EBAY-API-COMPATIBILITY-LEVEL: ' . $this->compatLevel,

//set the keys
'X-EBAY-API-DEV-NAME: ' . $this->devID,
'X-EBAY-API-APP-NAME: ' . $this->appID,
'X-EBAY-API-CERT-NAME: ' . $this->certID,

//the name of the call we are requesting
'X-EBAY-API-CALL-NAME: ' . $this->verb,

//SiteID must also be set in the Request's XML
//SiteID = 0 (US) - UK = 3, Canada = 2, Australia = 15, ....
//SiteID Indicates the eBay site to associate the call with
'X-EBAY-API-SITEID: ' . $this->siteID,
);

return $headers;
}
}
?>

  • 0

#28 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 10 Май 2010 - 22:04

web-rabbit, а вы уверены, что у вас есть все данные дял использования данного класса? Вам должны быт известны:
requestToken - как я понял, метка запроса (нигде не используется)
devID - уникальный идентификатор разработчика
appID - уникальный идентификатор программы, для которой хотим создать сессию(опять как же я понял)
certID - уникальный идентификатор сертификата
serverUrl - URL-адрес сервера, где хотим создать сессию
compatLevel - уровень совместимости (версия XML)
siteID - уникальный идентификатор сайта указывает сайту eBay на ассоциацию с вызовом
verb - имя вызова, который мы запрашиваем (скорее всего имя callback-функции)

Там приведены примеры использования?
  • 0

#29 web-rabbit

web-rabbit
    Topic Starter
  • Пользователь
  • 59 сообщений
  • Репутация: 0

Отправлено 13 Май 2010 - 13:50

ZiTosS, писала Вам в личку.. данные для использования класса есть..
вот такую схему бы реализовать, только бы желательно придумать как не делать редирект на сайт аукциона, а пересылать данные пользователя в запросе..
GettingTokensGetting_Tokens_for_Applicat

Люди, пАмАгЫте с кодом :( пжАлста ))


  • 0

#30 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 18 Май 2010 - 21:14

web-rabbit, не понял, что значит не делать редирект на сайт аукциона? Сайт аукциона ваш или это eBay
Как я понимаю схему:
1) Посылаем RuName API eBay, а он нам возвращает ID сессии
2) Адресуем пользователя на страницу авторизации eBay
3) По ID сессии опять же через API eBay получаем какой-то идентификатор.

P.s.: Объясните мне пожалуйста, почему сайт-снайпер? Откуда такое понятие. Мне просто не очень понятна суть работы скрипта...
  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru