Вернуться   Форум SAPE.RU > Система SAPE.ru > Ошибки при работе с системой

-->
Ответ
 
Опции темы
Старый 19.02.2010, 09:44   #1
Специалист
 
Регистрация: 09.12.2009
Сообщений: 193
Вес репутации: 0
drak не любят в этих краяхdrak не любят в этих краях
Red face не могу авторизоваться CURL-ом

Есть у меня скрипт, который вытаскивает "Экспорт данных".
Все работало около месяца, а сегодня с утра увидел такое:
"Неверный логин и/или пароль"

Сразу скажу, что скрипт этот запускаю раз в несколько часов и вытаскиваю только несколько ЦВС-ок. Чтобы не говорили потом, что я кладу сервер )

Подвис на минуту, испугался, проверил в разных браузерах - всё работает, все правильно. Однако сапа не пускает именно скрипт.
"Заголовки", подумал я, и списал все заголовки с ФФ.

Бился бился целый час - нифига не работает. на АПИ переписываться не хочется...

У меня у одного такая проблема?

и конечно же проверял, что посылаю сапе.


Код запроса:

$aHeaders[] = "Host: www.sape.ru";
$aHeaders[] = "Accept: text/html,applicationxhtml+xml,application/xml;q=0.9,*/*;q=0.8";
$aHeaders[] = "Cache-Control: no-cache, must-revalidatee";
$aHeaders[] = "Connection: keep-alive";
$aHeaders[] = "Keep-Alive: 300";
$aHeaders[] = "Pragma: no-cache";
$aHeaders[] = "Location: {$sURL}";
$aHeaders[] = "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7";
$aHeaders[] = "Accept-Language: ru,en-us;q=0.7,en;q=0.3";

curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Macintosh; U; YB/3.5.1 ; Intel Mac OS X 10_6_2; en-us) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10'

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeaders);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

if (!empty($aPostFields)) {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $aPostFields);
}

curl_setopt($ch, CURLOPT_COOKIEJAR, './cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, './cookie.txt');

$sResponse = curl_exec ($ch);

curl_close ($ch);

$aTmp = explode("\r\n\r\n",$sResponse);
unset($aTmp[0]);
return implode("\r\n\r\n",$aTmp);;


сам запрос банален:

$this->__getUrl('https://auth.sape.ru/login/?r=https%3A%2F%2Fwww.sape.ru%2Fsites.php',$aPostFi elds)
drak вне форума   Ответить с цитированием
Старый 19.02.2010, 09:45   #2
Эксперт
 
Регистрация: 13.05.2008
Сообщений: 7,497
Вес репутации: 387
Апокалипсис - прекрасное будущееАпокалипсис - прекрасное будущееАпокалипсис - прекрасное будущееАпокалипсис - прекрасное будущееАпокалипсис - прекрасное будущееАпокалипсис - прекрасное будущееАпокалипсис - прекрасное будущееАпокалипсис - прекрасное будущееАпокалипсис - прекрасное будущееАпокалипсис - прекрасное будущееАпокалипсис - прекрасное будущее
По умолчанию

Переписывайтесь на API.
Апокалипсис вне форума   Ответить с цитированием
Старый 19.02.2010, 09:49   #3
Bannеd
 
Регистрация: 17.09.2008
Сообщений: 6,446
Вес репутации: 370
Последний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущее
По умолчанию

drak, так и не нашел в коде, где сама авторизация у вас
Последний Герой вне форума   Ответить с цитированием
Старый 19.02.2010, 09:55   #4
Специалист
 
Регистрация: 09.12.2009
Сообщений: 193
Вес репутации: 0
drak не любят в этих краяхdrak не любят в этих краях
По умолчанию

$aPostFields = array();
$aPostFields['username'] = urlencode($this->login_data[0]);
$aPostFields['password'] = urlencode($this->login_data[1]);
$aPostFields['submit'] = 'Войти';

$this->__getUrl('https://auth.sape.ru/login/?r=https%3A%2F%2Fwww.sape.ru%2Fsites.php',$aPostFi elds)

Добавлено через 1 минуту
"$aPostFields" в коде конечно же. тут откуда-то пробел взялся ))

Последний раз редактировалось drak; 19.02.2010 в 09:55. Причина: Добавлено сообщение
drak вне форума   Ответить с цитированием
Старый 19.02.2010, 10:02   #5
Bannеd
 
Регистрация: 17.09.2008
Сообщений: 6,446
Вес репутации: 370
Последний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущее
По умолчанию

drak,
сударь, ничего не забыли?
Цитата:
<input type="hidden" name="act" value="login" />
Последний Герой вне форума   Ответить с цитированием
Старый 19.02.2010, 10:08   #6
Специалист
 
Регистрация: 09.12.2009
Сообщений: 193
Вес репутации: 0
drak не любят в этих краяхdrak не любят в этих краях
По умолчанию

это если с главной логиниться

а я логинюсь от сюда:
https://auth.sape.ru/login/?r=https%...ru%2Fsites.php

тут этого поля нет =)

попробую, конечно, но уверен, что не помоежт

Добавлено через 2 минуты
не помогло =)


p/s нихрена тут коллапс.. зашел в настройки площадки, а там пусто OO__OO

Последний раз редактировалось drak; 19.02.2010 в 10:08. Причина: Добавлено сообщение
drak вне форума   Ответить с цитированием
Старый 19.02.2010, 10:09   #7
Bannеd
 
Регистрация: 17.09.2008
Сообщений: 6,446
Вес репутации: 370
Последний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущее
По умолчанию

Цитата:
Сообщение от drak Посмотреть сообщение
$aHeaders[] = "Location: {$sURL}";
это что такое?

Цитата:
Сообщение от drak Посмотреть сообщение
https://auth.sape.ru/login/?r=https%...ru%2Fsites.php
не вижу где вы реферер передаете

скорее всего не верный логин или пароль передаете
Последний Герой вне форума   Ответить с цитированием
Старый 19.02.2010, 10:14   #8
Специалист
 
Регистрация: 09.12.2009
Сообщений: 193
Вес репутации: 0
drak не любят в этих краяхdrak не любят в этих краях
По умолчанию

я вар_дампил логин и пароль прямо перед curl_setopt($ch, CURLOPT_POSTFIELDS, $aPostFields);
всё там правильно. не первый год в пхп.
да и раньше же работал скрипт. а логин и пароль задаются в конфиге.

вот рефер
curl_setopt($ch, CURLOPT_REFERER, 'http://www.sape.ru/sites.php');

не думаю что он обязателен для логина. по-этому сюда не стал копипастить

Добавлено через 2 минуты
с локейшеном или без - разницы нет. все равно тоже самое.


да мля, я же говорю, РА-БО-ТА-ЛО! сломалось седня и явно не у меня =)))))
походу выходные будут веселыми, придется переписывать на АПИ =(

Последний раз редактировалось drak; 19.02.2010 в 10:14. Причина: Добавлено сообщение
drak вне форума   Ответить с цитированием
Старый 19.02.2010, 10:18   #9
Bannеd
 
Регистрация: 17.09.2008
Сообщений: 6,446
Вес репутации: 370
Последний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущее
По умолчанию

Цитата:
Сообщение от drak Посмотреть сообщение
вот рефер
curl_setopt($ch, CURLOPT_REFERER, 'http://www.sape.ru/sites.php');
не может быть такого реферера когда НЕ залогинены!

Добавлено через 2 минуты
Цитата:
Сообщение от drak Посмотреть сообщение
с локейшеном или без - разницы нет. все равно тоже самое.
разница есть, локейшена быть не должно при методе пост


Цитата:
Сообщение от drak Посмотреть сообщение
curl_setopt($ch, CURLOPT_REFERER, 'http://www.sape.ru/sites.php');
Цитата:
Сообщение от drak Посмотреть сообщение
а я логинюсь от сюда:
https://auth.sape.ru/login/?r=https%...ru%2Fsites.php
путаетесь в показаниях, гражданин!

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

Последний раз редактировалось Последний Герой; 19.02.2010 в 10:18. Причина: Добавлено сообщение
Последний Герой вне форума   Ответить с цитированием
Старый 19.02.2010, 11:47   #10
Специалист
 
Регистрация: 09.12.2009
Сообщений: 193
Вес репутации: 0
drak не любят в этих краяхdrak не любят в этих краях
По умолчанию

ты точно упоратый...

if (!empty($aPostFields)) {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $aPostFields);
}

грызи мануал


> разница есть, локейшена быть не должно при методе пост
я уже попробовла. разницы НЕТ.

короче ты мне тут не поможешь, я уже понял

ирефер такой может быть, если я в адресную строку тупо впишу http://www.sape.ru/sites.php будучи незалогиненным.

Добавлено через 1 час 23 минуты
спасибо =) починилось =))))) САМО! ))))

Последний раз редактировалось drak; 19.02.2010 в 11:47. Причина: Добавлено сообщение
drak вне форума   Ответить с цитированием
Ответ


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не могу авторизоваться в системе seasick Ошибки при работе с системой 1 17.02.2009 07:15
Не возможно авторизоваться на сайте superxxx Ошибки при работе с системой 2 06.02.2009 14:55
Не могу авторизоваться! ne_for Пожелания пользователей системы 2 12.01.2009 08:51
SAPE API на PHP+curl [ помогите ] ReVers Вопросы по работе системы 5 14.10.2008 11:12
XML-RPC на некоторых аккаунтах не авторизоваться Zed Ошибки при работе с системой 7 12.10.2008 20:08


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