Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.11.2008, 16:27
gusluk gusluk вне форума
Прохожий
 
Регистрация: 27.09.2008
Сообщения: 10
Репутация: 10
По умолчанию Авторизация на сайте

Пишу программу для автоматической загрузки файлов на сайт. Практически все уже готово, но никак не могу разобраться с авторизацией на сайте. Через браузер авторизация проходит таким скриптом:
Код HTML:
<script> function check_pass() { password = document.getElementById('pass'); if (password.value == '') { alert('Введите пароль!'); return false; } return true; } </script> <div class="message">Вы ввели неверный пароль.</div><form action="http://****" method="POST" name="f" class="my"> <p><br>Введите пароль заново:<br></p> <input type=hidden name=url value='http://****'> <p><input id="pass" type="password" name="pass" value="" size="50">&nbsp;&nbsp;<input type="submit" onclick="return check_pass();" value="войти" class="button"></p>
Как можно программно авторизоваться и если введен не верный пароль вылазило сообщение с ошибкой?
Ответить с цитированием
  #2  
Старый 18.11.2008, 16:31
ApplicatiOn ApplicatiOn вне форума
Активный
 
Регистрация: 28.02.2008
Сообщения: 388
Репутация: -10
По умолчанию

например чтобы авторизоваться вконтакте нужно:

vkontakte.ru/login.php?email=ВашЭмэйл&pass=Ваш пароль&HTTP/1.0

все зависит от сайта (пхп, хтмл и др.) и от защиты...

p.s.

кажись понял.. тут запрос надо устроить...

Последний раз редактировалось ApplicatiOn, 18.11.2008 в 16:35.
Ответить с цитированием
  #3  
Старый 18.11.2008, 16:40
ApplicatiOn ApplicatiOn вне форума
Активный
 
Регистрация: 28.02.2008
Сообщения: 388
Репутация: -10
По умолчанию

может допустил ошибки..

javascript:{var password = document.getElementById('pass') return check_pass(); }"


p.s. это яваскрипт....
Ответить с цитированием
  #4  
Старый 18.11.2008, 16:45
gusluk gusluk вне форума
Прохожий
 
Регистрация: 27.09.2008
Сообщения: 10
Репутация: 10
По умолчанию

Эт java. Уже пытался запрос сделать, пока безрезультатно.
Ответить с цитированием
  #5  
Старый 18.11.2008, 16:48
gusluk gusluk вне форума
Прохожий
 
Регистрация: 27.09.2008
Сообщения: 10
Репутация: 10
По умолчанию

Может тут надо этот пароль куда то отослать?
Ответить с цитированием
  #6  
Старый 18.11.2008, 16:50
ApplicatiOn ApplicatiOn вне форума
Активный
 
Регистрация: 28.02.2008
Сообщения: 388
Репутация: -10
По умолчанию

да надо, надо подумать ща погуглю чтонить
Ответить с цитированием
  #7  
Старый 18.11.2008, 16:55
ApplicatiOn ApplicatiOn вне форума
Активный
 
Регистрация: 28.02.2008
Сообщения: 388
Репутация: -10
По умолчанию

нагуглил какой-то пример..

Код:
Var Sock : TClientSocket;
    Stream : TWinSocketStream;
    S, Stmp : String;
Begin
  Sock.ClientType := ctBlocking;
  Stream := TWinSocketStream.Create(Sock.Socket,60000);
  Sock.Host := 'www.example.com';
  Sock.Port := 80;
  Sock.Open;
  S := 'GET / HTTP/1.0'#13#10+  // Готовим запрос
       'Host: www.example.com'#13#10+
       'Cookie: name1=value1; name2=value2; name3=value3'#13#10+
       'Connection: Close'#13#10#13#10;
  Sock.Socket.SendBuf(S[1],Length(S));  // Отправляем запрос
  S := '';
  While True do
  Begin
    If Stream.WaitForData(50) then  // Ждем очередной пакет
    Begin
      L := ClientSocket.Socket.ReceiveLength;
      If L=0 then  // Дисконнект
      Begin
        Break;  // Значит все данные приняты... прервать цикл
      End;
      SetLength(Stmp,L);  // Готовим буфер для нового пакета
      Sock.Socket.ReciveBuf(Stmp[1],L);  // Получаем очередные данные
      S := S + Stmp;  // И добавляем их к уже полученным
  End;
  // И обрабатываем переменную S
End;


ещё один:

Код:
var formlevariant;
f,i:Integer;
begin

for f:=0 to WebBrowser1.OleObject.Document.forms.Length-1 do begin
form:=WebBrowser1.OleObject.Document.forms.Item(f) .elements;
for i:=0 to form.Length-1 do
if form.item(i).name='username' then // посматри в исходнике страницы может не username а просто name или login
form.item(i).value:='Логин'
else
if form.item(i).name='password' then // password обычно так пишится бывает pass
form.item(i).value:='пороль';
Button9.Click;
end;
end;


procedure TForm1.Button9Click(Sender: TObject);
var formlevariant;
f,i:Integer;
begin

for f:=0 to WebBrowser1.OleObject.Document.forms.Length-1 do begin
form:=WebBrowser1.OleObject.Document.forms.Item(f) .elements;
for i:=0 to form.Length-1 do
if (form.item(i).type='submit') and (form.item(i).value='Войти') then form.item(i).click; // submit это кнопка 'Войти' это название кнопки
end;end;




последний пример авторизации с TWebBrowser
Ответить с цитированием
  #8  
Старый 18.11.2008, 17:10
gusluk gusluk вне форума
Прохожий
 
Регистрация: 27.09.2008
Сообщения: 10
Репутация: 10
По умолчанию

Спасибо!
Но пока я даже толком не могу понять в каком виде запрос должен быть сформирован.
Ответить с цитированием
  #9  
Старый 18.11.2008, 17:14
ApplicatiOn ApplicatiOn вне форума
Активный
 
Регистрация: 28.02.2008
Сообщения: 388
Репутация: -10
По умолчанию

да, надо с запросами еще разобраться, в этом ты прав
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025