delphi 登陆网页问题

sonnyhao1978 2012-01-10 02:53:06
begin

PostDataStream := TStringStream.Create('');
postList := TStringList.Create;
postList.Add('&loginsubmit=1');
postList.Add('&cookietime=315360000');
postList.Add('&formhash=4cd69240');
postList.Add('&username=' + Edit1.Text + '&password=' + Edit2.Text);
URL := 'http://192.168.1.151:82/do.php?ac=5e88d16502799f5a6ea64cdc58a84dc7&&ref';
try
IdHTTP1.HandleRedirects := true;
IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
IdHTTP1.Request.Referer := URL;
IdHTTP1.Request.AcceptLanguage := 'zh-cn';
IdHTTP1.Request.Connection := 'Keep-Alive';
IdHTTP1.Post(URL, postList, PostDataStream);
except
IdHTTP1.Disconnect;
end;
showmessage(IdHTTP1.Response.RawHeaders.Text);
end;
这个就是我的登陆代码,目前登陆成功,我想实现类似ShellExecute那样调用浏览器打开登陆成功后的主页。
有人知道怎么做吗?

PostDataStream.datastring.返回的是脚本windows.location...
...全文
220 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
erhan 2012-01-10
  • 打赏
  • 举报
回复
举个例子:
1.login.asp
2.login.htm
2.show.asp

如果用户直接访问show.asp,比较简单的做法是,
show.asp里面查cookie中的用户名及密码等信息是否正确,如果正确,显示相应内容
如果不正确或没cookie,重定向到login.htm
login.htm表单,让用户输入用户名及密码等信息,post给login.asp
login.asp提取表单数据,验证用户名及密码,如果正确,创建或修改cookie记录用户名及密码,重新跳转到show.asp
e8923704 2012-01-10
  • 打赏
  • 举报
回复
一般都是 http://www.xx.com?username=123&password=321 这个样子登陆到网页中。

你可以用 idhttp 连接网站,这时候网站返回一个 Key, 再用这个 Key 做为参数 get 网页
这样安全性没问题,也没那么复杂。
sonnyhao1978 2012-01-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 erhan 的回复:]

这个应该是你服务器端应该做的事,

服务器端应该根据客户端传来的cookie,决定是重定向到登录页面,还是继续执行用户的请求。
[/Quote]
可以具体点吗?我不是很懂,嘿嘿。谢谢啦。
erhan 2012-01-10
  • 打赏
  • 举报
回复
这个应该是你服务器端应该做的事,

服务器端应该根据客户端传来的cookie,决定是重定向到登录页面,还是继续执行用户的请求。
sonnyhao1978 2012-01-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 erhan 的回复:]

ShellExecute打开浏览器,登录后的cookie咋给它啊,似乎TWebBrowser还有可能
[/Quote]

用TWebBrowser这个的确可以正常登陆并显示网站主页,但是我的目的是类用QQ登陆QQ邮件那种,单击那个按钮就可以用默认浏览器打开该用户的的邮箱页面。我都找快一个月了,没有办法,不会啊。
erhan 2012-01-10
  • 打赏
  • 举报
回复
ShellExecute打开浏览器,登录后的cookie咋给它啊,似乎TWebBrowser还有可能

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧