Меню сайта
Категории раздела
Тобольск [0]
ТГСПА [0]
Delphi [40]
Basic [0]
Разное [4]
Радио
ЧАТ
200
Облако тегов
Облако фото
Форум
  • композитная арматура (0)
  • Справедливо ли это???? (1)
  • Недвижимость в Тюмени (1)
  • Качество услуг и обслуживания (2)
  • строительный эксперт (0)
  • гид по Греции (0)
  • винные туры по Италии (0)
  • деревянные лестницы (0)
  • гид по Италии (0)
  • Разные поздравления (1)
  • Главная » 2011 » Февраль » 14 » Авторизация на сайте
    19:39
    Авторизация на сайте
    procedure TForm1.Button1Click(Sender: TObject);
    var
    LoginInfo: TStringList;
    Response: TStringStream;
    begin
    try
    LoginInfo := TStringList.Create;
    Response := TStringStream.Create('');
    LoginInfo.Add('username=MyName');
    LoginInfo.Add('password=MyPass');
    IdHTTP1.Post('http://mywebsite.xxx/login.php',LoginInfo,Response);
    Showmessage(Response.DataString);
    finally
    begin
    Response.Free;
    LoginInfo.Free;
    end;
    end;

    end;





    Пример Post-функции (параметры передаются в виде IdMultiPartFormDataStream-а):

    uses IdMultipartFormData;
    { .... }

    procedure TForm1.Button1Click(Sender: TObject);
    var
    data: TIdMultiPartFormDataStream;
    begin
    data := TIdMultiPartFormDataStream.Create;
    try
    // добавляем нужные параметры
    data.AddFormField('param1', 'value1');
    data.AddFormField('param2', 'value2');
    // для примера выводим в мемо все, что вернулось
    Memo1.Lines.Text := IdHTTP1.Post('http://localhost/script.php', data);
    finally
    data.Free;
    end;
    end;


    Сейчас попробуем применить полученные знания. Идем на LiveJournal.com, включаем сниффер, логинимся на сайте и смотрим, какие параметры надо передавать ('mode=login', 'user=логин', 'password=пароль'). Авторизация не произойдет, если на стороне клиента не будут сохранены кукисы. Для сохранения кукисов среди компонентов Indy существует TidCookieManager. IdCookieManager подключается к idHTTP через свойство CookieManager.
    idHttp.CookieManager := IdCookieManager;

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


    Поместим на форму 2 TEdit-а, TMemo и кнопку, на которую повесим следующий работающий код авторизации:

    procedure TForm1.Button1Click(Sender: TObject);
    var
    Http : TidHttp;
    CM : TidCookieManager;
    Data : TStringList;
    StrPage, UserID, UserName : String;
    i : integer;
    begin
    try
    Http := TIdHTTP.Create(Self);
    Data := TStringList.Create;
    CM := TidCookieManager.Create(Http);
    Http.AllowCookies := true;
    Http.CookieManager := CM;
    Http.HandleRedirects := true;

    Http.Request.Host:='livejournal.com';
    Http.Request.UserAgent:='Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10';
    Http.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
    Http.Request.AcceptLanguage:='ru,en-us;q=0.7,en;q=0.3';
    Http.Request.AcceptCharSet:='windows-1251,utf-8;q=0.7,*;q=0.7';
    Http.Request.Referer:='http://www.livejournal.com/';

    Data.Add('mode=login');
    Data.Add('user=' + Edit1.Text);
    Data.Add('password=' + Edit2.Text);
    StrPage := Http.Post('http://www.livejournal.com/login.bml?ret=1', Data);
    finally
    Data.Free;
    CM.Free;
    Http.Free;
    end;

    if Pos('<input class="logoutlj_hidden" id="user" name="user" type="hidden" value="'+Edit1.Text,StrPage) <> 0 then
    ShowMessage('Авторизация прошла успешно')
    else
    ShowMessage('Авторизация провалилась');

    Memo1.Lines.Text := StrPage;
    end;


    Возвращенные заголовки (после ответа сервера) можно посмотреть так:
    idHttp.Response.RawHeaders.GetText;


    Сохраненные в CookieManager-е кукисы можно посмотреть так:
    for i := 0 to Http.CookieManager.CookieCollection.Count - 1 do
    StrPage := StrPage + CM.CookieCollection.Items[i].CookieText + #13#10;

    Категория: Delphi | Просмотров: 468 | Добавил: SeM | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Поиск по сайту
    Календарь
    «  Февраль 2011  »
    ПнВтСрЧтПтСбВс
     123456
    78910111213
    14151617181920
    21222324252627
    28
    Новый Год
    Опрос
    Были вы в Тобольске?


    Всего ответов: 23
    Всего голосовало: 23
    Обсудить на форуме
    Друзья сайта
    измерьте скорость интернета Яндекс.Метрика
    Проверить тИЦ и PR
    Статистика
    Погода
    Яндекс.Погода
    Коменнтарии

    Извиняюсь, заработал. Спасибо за урок biggrin

    Компонент не работает

    Давайте помогу разобраться ? вы хотите что бы когда выбиралась станция сразу начинала проигрывать? скиньте исходник или как лучше связаться с вами?

    у меня все работает!

    Нифига не робит...
    Кто знает как сделать чтобы на жесткий жертвы сохранял..
    ISQ 606017777

    FSDGHDFJHRG


    Отзывы Фото
    6 микр. Красивое место....

    Ершов ))))

    Старый музей но щас его перенесли...

    Фотография под горы smile

    Красивое фото!!! smile

    Copyright MyCorp © 2024