Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2010, 22:45   #1
MyIE
Форумчанин
 
Аватар для MyIE
 
Регистрация: 02.01.2010
Сообщений: 127
По умолчанию Авторизация через idHTTP (indy) на WordPress

Использовал код из других тем на форуме
http://www.programmersforum.ru/showthread.php?t=38803
Код:
var
params: TStringList;
response: string;
begin
params:=TStringList.Create;
try
params.Add('log=LOGIN');
params.Add('pwd=PASSWORD');
params.Add('redirect_to=http://www.mysite.com/wp-admin/');
params.Add('testcookie=1');
response:= IdHTTP1.Get('http://www.mysite.com/wp-login.php'); {сказали для WordPress нужно сначала сделать get, чтобы получить куки, но пробовал и без этого, эффект тот же}
response:= IdHTTP1.Post('http://www.mysite.com/wp-login.php', params);
if Pos('Log Out', response)>0 then
  PanelStatus.Caption:= 'Авторизация прошла успешно.'
  else
  PanelStatus.Caption:= 'Авторизация не прошла.';
end;
Но в админку WordPress не заходит.
Тут, кстати, переменная response вообще не заполняется.
Код:
<form name="loginform" id="loginform" action="http://www.mysite.com/wp-login.php" method="post">
<label>Username<br />
<input type="text" name="log" id="user_login" class="input" value="" size="20" tabindex="10" />
</label>
<label>Password<br />
<input type="password" name="pwd" id="user_pass" class="input" value="" size="20" tabindex="20" />
</label>
<label>
<input name="rememberme" type="checkbox" id="rememberme" value="forever" tabindex="90" /> Remember Me</label>
<input type="submit" name="wp-submit" id="wp-submit" class="button-primary" value="Log In" tabindex="100" />
<input type="hidden" name="redirect_to" value="http://www.mysite.com/wp-admin/" />
<input type="hidden" name="testcookie" value="1" />
</form>
Может кто-то привети работающий пример кода авторизации через indy на WordPress'е (хорошобы с комментами).
0_o
MyIE вне форума Ответить с цитированием
Старый 01.05.2010, 17:13   #2
Vlad_55
Пользователь
 
Регистрация: 03.11.2007
Сообщений: 22
По умолчанию

Я обычно через XML-RPC с блогом работаю- намного удобнее, чем всякие POST- GET- разбирать, HTML парсить и т.д.
Если всё-таки надо работать с WP без XML-RPC, то не помешало бы сделать две вещи:
1. Кодировать значения параметров запроса POST функцией HTTPEncode
2. Проверять заголовки на наличие "Location: " после того как отправляете POST-запрос
То, что :
Цитата:
Тут, кстати, переменная response вообще не заполняется.
Так оно и не должно заполняться, если редирект на другую страницу в Header'ах лежит.
Попробовал использовать ваш код для авторизации в своем блоге (с учетом кодирования и проверки на редирект) - вполне нормально авторизовался, с первого раза.

З.Ы. Вообще я не любитьль использовать Indy для работы с Сетью, могу предложить пример авторизации в WordPress-блоге с использованием Synapse (старенькой, но удобной библиотеки) - код занимает всего 26 строк
http://www.webdelphi.ru/2010/05/syna...rdpress-bloge/
там же и комментарии к коду и исходник программки для авторизации.
WebDelphi.ru - блог о программировании на Delphi

Последний раз редактировалось Vlad_55; 01.05.2010 в 19:42.
Vlad_55 вне форума Ответить с цитированием
Старый 01.05.2010, 19:43   #3
MyIE
Форумчанин
 
Аватар для MyIE
 
Регистрация: 02.01.2010
Сообщений: 127
По умолчанию

Можете привести код, который у вас проходит авторизацию?
Я пробовал, то что вы подсказали - не авторизует
0_o
MyIE вне форума Ответить с цитированием
Старый 02.05.2010, 11:33   #4
Vlad_55
Пользователь
 
Регистрация: 03.11.2007
Сообщений: 22
По умолчанию

Цитата:
Сообщение от MyIE Посмотреть сообщение
Можете привести код, который у вас проходит авторизацию?
Я пробовал, то что вы подсказали - не авторизует
По ссылке, которую я оставил Выше находится пост. В посте читатель с ником "Санек" оставил листинг процедуры авторизации на Indy. Судя по комменту проблема только с паролем содержащем спец.символы
WebDelphi.ru - блог о программировании на Delphi
Vlad_55 вне форума Ответить с цитированием
Старый 02.05.2010, 12:12   #5
MyIE
Форумчанин
 
Аватар для MyIE
 
Регистрация: 02.01.2010
Сообщений: 127
По умолчанию

Там не комментариев и нет кода для indy, там все для синапса
0_o
MyIE вне форума Ответить с цитированием
Старый 02.05.2010, 14:22   #6
hozey
 
Регистрация: 28.09.2008
Сообщений: 6
По умолчанию

Цитата:
Сообщение от MyIE Посмотреть сообщение
Там не комментариев и нет кода для indy, там все для синапса
Есть там коммент с кодом для Инди, куда вы смотрите? я же его оставил
Еще вчера ответил на ваш вопрос на винграде

Последний раз редактировалось hozey; 02.05.2010 в 14:27.
hozey вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
IdHTTP и авторизация celovec Работа с сетью в Delphi 4 06.12.2010 21:33
Авторизация по IdHTTP без имени компонента tuftel Работа с сетью в Delphi 11 17.03.2009 04:20
Авторизация через Idhttp xakkkkker Работа с сетью в Delphi 1 08.02.2009 17:10
Авторизация выполена, но с ошибкой(idHTTP) KiDoki Работа с сетью в Delphi 2 06.12.2008 19:45
Авторизация c Indy HTTP key' Работа с сетью в Delphi 20 05.12.2008 17:08