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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.07.2010, 18:47   #1
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Есть некий сайт, как мне узнать что я на нём правельно авторизировался
часть кода с сайта где показан ник
Код HTML:
<center>
<a href="set_avatar.php" title="Сменить аватар"><img src="avp/no.gif" border="1" /></a><br>
Здравствуйте, <span class='textblue'>НИК</span><br>
</center>
код для авторизации я использую такой
Код:
procedure TForm2.Button1Click(Sender: TObject);
var
  http:TidHttp;
  CooM:TidCookieManager;
  data:TStringList;
  page, id, name:String;
begin
  http:=TIdHTTP.Create(Self);
  data :=TStringList.Create;
  CooM:=TidCookieManager.Create(http);
  http.AllowCookies:=true;
  http.CookieManager:=CooM;
  http.HandleRedirects:=true;


 http.Request.Host:='Сайт';
 http.Request.UserAgent:='Opera/9.51 (Windows NT 5.1; U; ru)';
 http.Request.Accept:='text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5';
 http.Request.AcceptLanguage:='ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3';
 http.Request.AcceptEncoding:='gzip,deflate';
 http.Request.AcceptCharSet:='windows-1251,utf-8;q=0.7,*;q=0.7';
 http.Request.Referer:='http://Сайт/login.php?r=';

  data.Add('submit=Войти');
  data.Add('username='+Edit1.Text);
  data.Add('password='+Edit2.Text);
  Page:= http.Post('http://Сайт/login.php?r=', data);
  data.Free;
  Coom.Free;
  http.Free;
end;
Пробывал так, но не получилось
Код:
procedure TForm2.Button1Click(Sender: TObject);
var
  http:TidHttp;
  CooM:TidCookieManager;
  data:TStringList;
  page, id, name:String;
begin
  http:=TIdHTTP.Create(Self);
  data :=TStringList.Create;
  CooM:=TidCookieManager.Create(http);
  http.AllowCookies:=true;
  http.CookieManager:=CooM;
  http.HandleRedirects:=true;

 {****Включить по желанию****}

 http.Request.Host:='сайт.ru';
 http.Request.UserAgent:='Opera/9.51 (Windows NT 5.1; U; ru)';
 http.Request.Accept:='text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5';
 http.Request.AcceptLanguage:='ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3';
 http.Request.AcceptEncoding:='gzip,deflate';
 http.Request.AcceptCharSet:='windows-1251,utf-8;q=0.7,*;q=0.7';
 http.Request.Referer:='http://сайт.ru/login.php?r=';

  data.Add('submit=Войти');
  data.Add('username='+Edit1.Text);
  data.Add('password='+Edit2.Text);
  Page:= http.Post('http://сайт.ru/login.php?r=', data);
  data.Free;
  Coom.Free;
  http.Free;
Memo1.Lines.Text := IdHTTP1.Get('http://сайт.ru/privatecab.php');
end;
В memo выводит
Код HTML:
<script type="text/javascript">
	location.replace("login.php");
	</script>
	<noscript>
	<meta http-equiv="refresh" content="0; url=login.php">
	</noscript>

Последний раз редактировалось Stilet; 15.07.2010 в 14:10.
bulldog5293 вне форума Ответить с цитированием
Старый 14.07.2010, 21:43   #2
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

какя понял мой вопрос останется мёртвымжаль

Переделал код на такой, но опять же провал
Код:
procedure TForm2.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:='сайт.net';
http.Request.UserAgent:='Opera/9.51 (Windows NT 5.1; U; ru)';
http.Request.Accept:='text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5';
http.Request.AcceptLanguage:='ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3';
http.Request.AcceptEncoding:='gzip, deflate';
http.Request.AcceptCharSet:='window s-1251,utf-8;q=0.7,*;q=0.7';
Http.Request.Referer:='http://www.сайт.net/';

Data.Add('submit=Войти');
Data.Add('username=' + Edit1.Text);
Data.Add('password=' + Edit2.Text);
StrPage := Http.Post('http://сайт/login.php', Data);
finally
Data.Free;
CM.Free;
Http.Free;
end;

if Pos('bulldog5293',StrPage) <> 0 then
ShowMessage('Авторизация провалилась')///а какая из них должна ///быть первой-эта 
else
ShowMessage('Авторизация прошла успешно');///или эта

Memo1.Lines.Text := StrPage;
end;
Вобщем отет в мемо получаю такой <META HTTP-EQUIV="REFRESH" CONTENT="0;URL=work.php">

Последний раз редактировалось Stilet; 15.07.2010 в 14:12.
bulldog5293 вне форума Ответить с цитированием
Старый 14.07.2010, 22:15   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Вобщем отет в мемо получаю такой <META HTTP-EQUIV="REFRESH" CONTENT="0;URL=work.php">
ну редирект, перейдите потом на страницу work.php и по ней уже смотрите.
Цитата:
if Pos('bulldog5293',StrPage)=0 then
ShowMessage('Авторизация провалилась')///а какая из них должна ///быть первой-эта
else
ShowMessage('Авторизация прошла успешно');///или эта
ну тогда уж так.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 14.07.2010, 22:22   #4
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Пепел феникса, конечно понимаю вопрос нубский, а как?точнее в реализации программного кода
bulldog5293 вне форума Ответить с цитированием
Старый 14.07.2010, 22:27   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Memo1.Lines.Text:=http.get('http://Сайт/work.php');

может даже проще можно, проверьте, этот редирект только при успешной авторизации или нет?

PS: залогинится это пол проблемы, часто бывает проблема потом с остальными запросами.(учитывая что вам нужны будут куки с логина)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 14.07.2010 в 22:29.
Пепел Феникса вне форума Ответить с цитированием
Старый 14.07.2010, 22:42   #6
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

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

после не долгих манипуляций в мемо получил
Код HTML:
<script type="text/javascript">
	location.replace("login.php");
	</script>
	<noscript>
	<meta http-equiv="refresh" content="0; url=login.php">
	</noscript>
я как понял тоже редирект или нет?

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

Последний раз редактировалось Stilet; 15.07.2010 в 14:14.
bulldog5293 вне форума Ответить с цитированием
Старый 14.07.2010, 23:47   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

редирект, и судя по всему это означает не удачную авторизацию.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 15.07.2010, 13:14   #8
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Народ, прошу подскажите что не так с моим кодом, вод код с сайта при авторизации
<form action='login.php' method='POST'>
<table width="100%" border="0" align="center">
<tr>

<td width="40%" align="right"><p><label>Логин</label></p></td>
<td width="60%" align="left"><input type='text' size='15' maxlength='25' name='username' autocomplete="off" value="" tabindex="1" /></td>
</tr>
<tr>
<td width="40%" align="right"><p><label>Пароль</label></p></td>
<td width="60%" align="left"><input type='password' size='15' maxlength='25' name='password' autocomplete="off" value="" tabindex="2" /></td>
</tr>
<tr>

<td colspan=2 align="center"><input type="submit" value="Войти" class="submit" tabindex="4" /></td>
</tr>
</table>
</form>
bulldog5293 вне форума Ответить с цитированием
Старый 15.07.2010, 13:19   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

снифером проверь как отсылается.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 15.07.2010, 13:34   #10
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

PHP код:
GET /login.php?rHTTP/1.1
Host
safonbux-msk.ru
User
-AgentMozilla/5.0 (WindowsUWindows NT 5.1rurv:1.9.1.3Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)
Accepttext/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: PHPSESSID=b49968baf99ecfb58573c81f966862ac

HTTP/1.1 200 OK
Server: nginx/0.7.65
Date: Thu, 15 Jul 2010 01:21:10 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive
X-Powered-By: PHP/5.2.12
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache 

Последний раз редактировалось bulldog5293; 15.07.2010 в 16:35.
bulldog5293 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
авторизация. DeDoK Работа с сетью в Delphi 3 02.07.2010 17:00
Авторизация Cpluser Общие вопросы .NET 2 01.03.2010 17:08
Авторизация Flippp Общие вопросы C/C++ 0 08.12.2009 11:07
Авторизация doniyor JavaScript, Ajax 1 07.11.2009 21:13
Авторизация AIst PHP 5 03.12.2008 20:57