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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2011, 16:09   #1
jihot
Начинающий кодер
Пользователь
 
Аватар для jihot
 
Регистрация: 26.01.2010
Сообщений: 72
По умолчанию Проблема с авторизацией на сайте

Добрый день!
Надеюсь написал в правильный раздел..

Почитав принципы авторизации на сайтах и заинтересовавшись в этом я решил попробовать это на практике..
Но у меня не совсем получилось то, что я хотел.

На своём сервере создал обычный .php файлик следующего содержания:
Код:
<?php
$login = $_POST['login'];
$ps = $_POST['ps'];
?>
<form action = "index.php" method="post">
<?php
if (($login == "admin") && ($ps == "1234")) {
print "<input type=\"hidden\" value=\"Вы зашли!\">"; }
?>
<b>Логин :</b><br>
<input type="text" name="login" size="15" maxlength="10" value="<?=$login?>"><br>
<b>Пароль :</b><br>
<input type="text" name="ps" size="15" maxlength="10" value="<?=$ps?>"><br>
<input type="submit" value="Войти!">
</form>
В принципе всё просто, если в логин и пароль ввёден правильно то выводится "<input type="hidden" value="Вы зашли!">

Но проблема в том, что у меня не проходит авторизация через delphi

Код в Delphi:
Код:
procedure TForm1.sButton1Click(Sender: TObject);
var 
  Flags, TargetFrameName, PostData, Headers: OleVariant; 
begin 
  WebBrowser1.Navigate('http://localhost/index.php', Flags,
    TargetFrameName, PostData, Headers);
end;

procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
var
responseres,params : TStrings;
begin
params:=TStringList.Create;
responseres:=TStringList.Create;
responseres.Text:=IdHttp1.Post('http://localhost/index.php',params);
if Pos('<input type="hidden" value="Вы зашли!">',responseres.Text)<>0 then
ShowMessage('Авторизовались!')
end;
Через сайт всё работает, в delphi - нет.

Помогите, в чём проблема ?


С Уважением,
with love ^.^
jihot вне форума Ответить с цитированием
Старый 30.05.2011, 18:53   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а вы чего параметры запроса то не заполняете?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 30.05.2011, 19:11   #3
jihot
Начинающий кодер
Пользователь
 
Аватар для jihot
 
Регистрация: 26.01.2010
Сообщений: 72
По умолчанию

а я незнаю какие параметры запросa заполнить, если они всё заполняются на самой странице (
with love ^.^
jihot вне форума Ответить с цитированием
Старый 30.05.2011, 22:04   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

http://programmersforum.ru/showthread.php?t=38803
тут же расписано.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 30.05.2011, 22:11   #5
jihot
Начинающий кодер
Пользователь
 
Аватар для jihot
 
Регистрация: 26.01.2010
Сообщений: 72
По умолчанию

я немного не правильно описал суть проблемы.
сейчас понял больше :
Все параметры у меня передаются, как и должно было быть.

Нажимая правой кнопкой мыши - получить html-код , я вижу что и хотел -> <input type="hidden" value="Вы зашли!">

Но вот, как мне получить программно html-код текущей странички? без всяких параметров...
with love ^.^
jihot вне форума Ответить с цитированием
Старый 30.05.2011, 23:44   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

когда вы в браузер логинитесь, он передает параметры.
и потому скрипт выдает то что надо.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 30.05.2011, 23:55   #7
jihot
Начинающий кодер
Пользователь
 
Аватар для jihot
 
Регистрация: 26.01.2010
Сообщений: 72
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
когда вы в браузер логинитесь, он передает параметры.
и потому скрипт выдает то что надо.
Но как мне программно получить html-код загруженной у меня сейчас странички?

Post мне кажется не подошло бы, т.к там нужно указывать параметры и адрес страницы.
А страница уже загружена и нужно лишь её код узнать.
with love ^.^
jihot вне форума Ответить с цитированием
Старый 31.05.2011, 00:14   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

загружена куда?(и внутри ли вашего приложения)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 31.05.2011, 00:28   #9
jihot
Начинающий кодер
Пользователь
 
Аватар для jihot
 
Регистрация: 26.01.2010
Сообщений: 72
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
загружена куда?(и внутри ли вашего приложения)
я имел ввиду про браузер.
в TWebBrowser.
with love ^.^
jihot вне форума Ответить с цитированием
Старый 31.05.2011, 00:42   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
procedure WB_GetHTML(Lines:Tstrings;WebBrowser:TWebBrowser);
var
 PersistStream: IPersistStreamInit;
 MemStream: TMemoryStream;
 Stream: IStream;
begin
 PersistStream := WebBrowser.Document as IPersistStreamInit;
 MemStream := TMemoryStream.Create;
 try
  Stream := TStreamAdapter.Create(MemStream, soReference) as IStream;
  PersistStream.Save(Stream, True);
  MemStream.Position:=0;
  Lines.Clear;
  Lines.LoadFromStream(MemStream);
 finally
  MemStream.Free;
 end;
end;
который раз выкладываю этот код.в uses должно быть activex
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 31.05.2011 в 00:45.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с авторизацией DKENT Работа с сетью в Delphi 0 14.10.2010 17:40
Проблема с авторизацией Mathouse Работа с сетью в Delphi 2 31.08.2010 16:03
Проблема с авторизацией на сайте Айдар Работа с сетью в Delphi 3 23.07.2010 23:16
проблема с авторизацией sergei2009 PHP 1 19.04.2010 17:47
Проблеммы с авторизацией на сайте и с капчёй! AquaKlaster Работа с сетью в Delphi 3 16.05.2009 00:15