Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать авторизацию на сайте через программу ? 
:(
    Опции темы
Gawrilowalex
Дата 25.6.2011, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 25.6.2011

Репутация: нет
Всего: нет



Добрый день помогите сделать авторизацию на сайте через программу.
edit1 , edit2 bottom1 , WebBrowser --- в едит 1 логин  а в едит 2 пароль 
после нажатия войти на сайт  который  tut-drug.ru .
После того как вписали данные в едит 1 и 2 нажать на кнопку и откроется страница где уже ты вошел и не надо делать авторизацию.
Помогите пожалуйста я новичок в Delphi7 мне 15 лет и я только начинаю его изучать. Мне нравится программирование....
Помогите пожалуйста или есть у кого исходник киньте пожалуйста  
PM MAIL   Вверх
omickron
Дата 5.7.2011, 11:16 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 12.2.2009

Репутация: 1
Всего: 1



Привет, дружище.
Исходником вряд ли кто-то поделится. Лучше писать самому. Но предварительно разобравшись в вопросе.

Сам процесс такой.
1. Нужно выбрать способ, которым ты будешь обмениваться запросами с сервером. Их много. Самый подходящий для тебя, на мой взгляд - набор компонентов Indy. Тебе нужен будет IdHTTP. Он умеет формировать запрос, отправлять его и получать ответ.
2. Далее тебе нужно понять, какими именно запросами обмениваются сервер и клиент. Тут же заодно ты узнаешь, что такое куки (Cookies), зачем они нужны и как ими пользоваться. Чтобы нагляднее это представлять, используй какой-нибудь HTTP сниффер, например, HTTPAnalyzer.
3. Ну и наконец, само приложение. Оно будет совсем простое: форма, на ней компоненты, которые ты описал, и TIdHTTP. Заполняешь заголовки TIdHTTP, отправляешь запрос, получаешь ответ - смотришь, что пришло.


Далее, смотри, сам что тебе нужно: если нужно, чтобы открывался браузер по умолчанию, сразу на этой странице, то скорее всего, тебе нужно будет сделать ещё пару действий:
4. Узнать, как твой браузер хранит Cookies; добавить в его хранилище те Cookes, которые ты получил в п.3
5. Выполнить ShellExecute с командой открытия нужной тебе ссылки.

Вот, как-то так.
PM MAIL   Вверх
Poseidon
Дата 17.7.2011, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 9
Всего: 133



Цитата(Gawrilowalex @  25.6.2011,  17:31 Найти цитируемый пост)
После того как вписали данные в едит 1 и 2 нажать на кнопку и откроется страница где уже ты вошел и не надо делать авторизацию.
Нужно ли будет иметь возможность "ходить" по сайту залогинившись или достаточно "войти" на стартовую страницу?

Кстати, вход на сайт достаточно прост. Нужно отправить post-запрос на http://tut-drug.ru/login Содержимое запроса очень хорошо видно из кода страницы.

Код
            <form method="post" action="">
                <div class="lf_title">Логин или E-Mail</div>
                <div class="lf_field">
                    <input type="text" name="login" id="login_field" tabindex="1" /> <a href="/registration" class="lf_link">Регистрация</a>
                </div>
                <div class="lf_title">Пароль</div>
                <div class="lf_field">
                    <input type="password" name="pass" id="pass_field" tabindex="2"/> <a href="/passremind.html" class="lf_link">Забыли пароль?</a>
                </div>
                <table border="0" cellpadding="0" cellspacing="0" width="100%">
                    <tr>
                        <td width="20"><input type="checkbox" name="remember" value="1" id="remember" /></td>
                        <td>
                            <label for="remember">Запомнить меня</label>
                        </td>
                    </tr>
                </table>
                <p class="lf_submit">
                    <input type="submit" name="login_btn" value="Войти" />
                </p>
            </form>


тут хорошо видно что логин надо передавать как "login", пароль как "pass"

Будет что-то примерно так

Код
procedure TForm1.Button1Click(Sender: TObject);
var
  prm: TStringList;
  html: String;
begin
  prm:= TStringList.Create;
  try
    prm.Add('login='+Edit1.Text);
    prm.Add('pass='+Edit2.Text);

    html:= IdHTTP1.Post('http://tut-drug.ru/login', prm);
  finally
    prm.Free;
  end;
  {...}

end;

в переменной html у тебя будет ответ в виде html-кода. Можешь его сохранять, открывать в WebBrowser или еще чего с ним делать. Данный код не совершенен. Вполне возможно что если ты передашь ответ в WebBrowser и попробуешь пойти по страничкам, следующая же ссылка у тебя откроется как у гостя. Тут уже надо куки подключать.

Это сообщение отредактировал(а) Poseidon - 17.7.2011, 17:18


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0924 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.