如何登陆?(50分)

  • 主题发起人 主题发起人 zzitwang
  • 开始时间 开始时间
Z

zzitwang

Unregistered / Unconfirmed
GUEST, unregistred user!
现有一个网站,我想用Tidhttp来自动登陆,怎么实现?
如:http://www.ebok.cn/login.asp网站

网站源文件

<!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;>
<html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;>
<head>
<meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=gb2312&quot; />
<title>用户管理登陆</title>
<link href=&quot;OblogStyle/OblogStyleAdminLogin.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; />
</head>
<body><form name=&quot;reg&quot; method=&quot;post&quot; action=&quot;login.asp?fromurl=&quot; >
<p class=&quot;p1&quot;><input name=&quot;username&quot; type=&quot;text&quot; class=&quot;put1&quot; size=&quot;25&quot; />
</p>
<p class=&quot;p2&quot;><input name=&quot;password&quot; type=&quot;password&quot; class=&quot;put1&quot; size=&quot;25&quot; />
</p>
<p class=&quot;p3&quot;>
<input name=&quot;CookieDate&quot; type=&quot;radio&quot; value=&quot;0&quot; checked=&quot;checked&quot; title=&quot;若您不在自己的电脑登陆,请不要保存密码&quot; />不保存
<input type=&quot;radio&quot; name=&quot;CookieDate&quot; value=&quot;1&quot; />一天
<input type=&quot;radio&quot; name=&quot;CookieDate&quot; value=&quot;2&quot; />一月
<input type=&quot;radio&quot; name=&quot;CookieDate&quot; value=&quot;3&quot; />一年</p>
<p class=&quot;p4&quot;></p>
<div class=&quot;but&quot;>
<input name=&quot;Submit&quot; type=&quot;image&quot; src=&quot;OblogStyle/OblogStyleAdminImages/login.gif&quot; value=&quot;提交&quot; onclick=&quot;submit()&quot; /></div>
<div class=&quot;code&quot;>

</div></p>
</form>
</body>
</html>
 
给你看今天一个网友的例子.

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdHTTP;

type
TForm1 = class(TForm)
Button1: TButton;
IdHTTP: TIdHTTP;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
const
BaseURL = 'http://bbs.hangzhou.com.cn/'; //论坛所在地址
UserName = ''; //登录用户名
Password = ''; //登录密码
var
Params: TStrings;
HTML: String;
MD5Pass: String;
p1,p2: Integer;
begin
Params:=TStringList.Create;
Params.Add('username='+UserName);
Params.Add('password='+Password);
Params.Add('cookietime='+InttoStr(CookieNone));

Params.Add('comeurl='+BASEURL+'logging.php?action=login');
HTML:=IdHttp.Post(BaseURL+'logging.php?action=login',Params);
if Pos(BASEURL+'index.php',HTML)=0 then
begin
ShowMessage('登录失败');
Exit;
end
else
ShowMessage('登陆成功');
end;
end.
 
楼上老兄的方法适用与get提交
而楼主是post提交

看看我这个,以前做的自动登陆语音聊天室自动说话的一个东西:
先用webbrowser打开页面,然后在OnDocumentComplete事件里写:

procedure Tfrm_main.WebBrowserDocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
var
msg,bt : Olevariant;
begin
if (lowercase(url)=lowerCase('http://chat.btbbt.com:8900/Login')) and AutoLogin then
begin
msg := WebBrowser.oleobject.document.all.item('user',0); //user是输入用户名的表单名称,对应到你那个页面就是username
msg.value:='用户名';
msg := WebBrowser.oleobject.document.all.item('pass',0);//pass是输入密码的表单名称,对应到你那个页面就是password
msg.value:='密码';
bt :=WebBrowser.oleobject.document.all.item('Submit',0); //提交按钮,名字和你上面的页面一样
bt.Click;
end;
end;
 
TO hs-kill
我想用Idhttp来提交
 
呵呵 这个我不会。。。没研究过。。。个人不喜欢用idhttp
 
不行 我放在
fisheryj.ys168.com 里面delphi文件夹下面 谁帮忙看一下
 
抱歉,我不想在 www.ebok.cn 上注册后测试程式
 
to BrainYang
用户名:zzzqzzz
密码 :123456
你可以试试,谢谢主。。。
 
看看这个。
http://bbs.2ccc.com/topic.asp?topicid=213900
http://bbs.2ccc.com/attachments/2006/brainyang_2006121152337.jpg
针对你的问题,我试试看吧
 
楼主,这个还真不好弄。
我用www.oxid.it上的cain都监测不到提交的真正地址。
看网页源码分析出的地址试过很多也不对。
咱们交流一下。
BrainYang@gmail.com
 
帮顶!

╭=========================================╮

80G海量源代码,控件,书籍全免费狂下不停!

http://www.source520.com

个人网站站长开发推广同盟,让所有人知道你的世界!

http://www.source520.com/search/search.asp

╰=========================================╯
 
海军陆战队才要“登陆”的~~
 
后退
顶部