Delphi авторизация на сайте DLE с помощью idHTTP

dleНедавно задумался над тем что было бы неплохо постить автоматом новости на новостные порталы под чудесной CMS DLE, но для начала надо научиться авторизовываться автоматом, подумал я, и не долго думая достал запылившийся Delphi, запустил.
На форму кинул два Edit-a,  одну кнопку которую успешно обозвал Авторизироваться и компонент idHTTP.
У меня получилась такая страшненькая форма:

form

где:

Edit1 — поле для ввода имени пользователя

Edit2 — поле для ввода пароля

В обработчике нажатия на кнопку написал следующий код:

procedure TForm1.Button1Click(Sender: TObject);
var
LoginData, Response: TStrings;
begin
LoginData := TStringList.Create;
Response := TStringList.Create;
try
LoginData.Add('login_name='+Edit1.Text);
LoginData.Add('login_password='+Edit2.Text);
LoginData.Add('login=submit');
LoginData.Add('x=0');
LoginData.Add('y=0');
Response.Text := IdHTTP1.Post('http://СЮДА ВПИСАТЬ АДРЕС САЙТА/index.php',LoginData);
if Pos('logout',Response.Text)>0 then
ShowMessage('Авторизовались!')
else
ShowMessage('Авторизация не удалась!');
finally
LoginData.Free;
end;
end;

Если авторизация прошла успешно, то получим окно с сообщением Авторизовались! иначе Авторизация не удалась!

Поделись с друзьями:

Опубликовано 26.01.2011 в 15:50 · Автор komivlad · Ссылка
Рубрики: Delphi, DLE, Programming · Теги: , , ,

21 комментарий

Подписаться на комментарии по RSS

  1. Написал(-а) Алексей
    01.02.2014 в 17:33
    Ответить · Ссылка

    будет ли обновление?

    • Написал(-а) komivlad
      03.02.2014 в 18:23
      Ответить · Ссылка

      немного не понял вопрос) можно конкретнее его поставить?)

  2. Написал(-а) komivlad
    18.12.2012 в 07:33
    Ответить · Ссылка

    Проверь снифером, что отправляет браузер и что отправляет программа.

    Возможно необходимо переписать алгоритм авторизации под себя

  3. Написал(-а) Spot
    18.12.2012 в 00:40
    Ответить · Ссылка

    но, на стороне сервера клиент еще не авторизован, т. е. ид юзера сохраняется в пременной сессии, только при переходе по login.php?user=testuser

  4. Написал(-а) komivlad
    17.12.2012 в 11:01
    Ответить · Ссылка

    if Pos ('login.php?user=testuser',Response.Text)>0 then

    ShowMessage ('Авторизовались!')

  5. Написал(-а) Spot
    17.12.2012 в 08:06
    Ответить · Ссылка

    а если в Response.Text

    переход на другую страницу

    например

    document.location.href='login.php?user=testuser'

  6. Написал(-а) komivlad
    11.11.2012 в 20:06
    Ответить · Ссылка

    В точку!

    Абсолютно с тобой согласен!

  7. Написал(-а) lastwagen
    11.11.2012 в 19:20
    Ответить · Ссылка

    В упор не понимаю, откуда вечно возьмется ложка дегтя?! Вот, никак без нее. Всегда же находиться некая дрянь, которая придет и нагадит без каких либо оснований, а только потому, что свербит в очке.

  8. Написал(-а) komivlad
    07.11.2012 в 12:36
    Ответить · Ссылка

    Будь проще!

    Если есть чем поделиться — поделись, обсирать каждый может, а напрячь остатки прямых извилин видимо нет!

    Just smile.

  9. Написал(-а) Пшли нахуй
    07.11.2012 в 12:21
    Ответить · Ссылка

    Полная хуйня а не урок.

  10. Написал(-а) komivlad
    15.01.2012 в 23:18
    Ответить · Ссылка

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

  11. Написал(-а) Дмитрий
    15.01.2012 в 23:07
    Ответить · Ссылка

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

  12. Написал(-а) komivlad
    13.10.2011 в 16:35
    Ответить · Ссылка

    =)))) забавно)

  13. Написал(-а) Степан
    13.10.2011 в 13:43
    Ответить · Ссылка

    Собственно оставил комментарий только чтобы покрутить картинки в антикаптче ^_^

  14. Написал(-а) komivlad
    18.08.2011 в 12:19
    Ответить · Ссылка

    если я правильно понял, то измени кусок кода

    if Pos ('logout',Response.Text)>0 then

    ShowMessage ('Авторизовались!')

    else

    на

    if Pos ('logout',Response.Text)>0 then

    ShowMessage ('Авторизовались!')

    WebBrowser1.Navigate ('http://СЮДА ВПИСАТЬ АДРЕС САЙТА/index.php');

    else

    и все, только не забудь добавить WebBrowser1 на форму

  15. Написал(-а) Алексей
    18.08.2011 в 08:49
    Ответить · Ссылка

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

  16. Написал(-а) komivlad
    16.05.2011 в 21:57
    Ответить · Ссылка

    с капчей не ковырялся ни разу, но не думаю что там сложно, будет время гляну, просто найти идентификатор картинки, загрузить ее, ну как-то так, в общем как попробую выложу рабочий кусок, если есть наработки кидай сюда, сфарганим вместе что-то 🙂

  17. Написал(-а) Bbb
    16.05.2011 в 19:50
    Ответить · Ссылка

    А вот как с капчей быть?

  18. Написал(-а) komivlad
    07.02.2011 в 20:49
    Ответить · Ссылка

    без проблем!

  19. Написал(-а) Gua
    01.02.2011 в 07:30
    Ответить · Ссылка

    Все так легко и просто! Давай еще!

  20. Написал(-а) Dimitriy
    28.01.2011 в 23:33
    Ответить · Ссылка

    Ух-ты! Интересненько... и как все гениальное просто! А продолжение будет?

Подписаться на комментарии по RSS

Написать комментарий