怎样实现网站的自动登陆功能?? 例用post请求传送参数<a href=http://domain/login.php?password=pw&username=user.... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 网络URL地址的解码与编码网络上的URL地址指的就是http://www.xjyouth.com/forum/default.asp这样的地址,平常我们是用不到URL地址的解码与编码的,只有在网站登陆等提交表单的情况下用到。 在介绍之前先来看下面的表单:(HTML代码写的不清楚的可以去查阅有关书集,HTML是网页的源代码,学做网页不知道这个可不行)<form action="http://login.mail.sohu.com/chkpwd.php ;method="post">用户:<input name="UserName" type="text">口令:<input name="Password" type="password"><input name="submit" type="submit" value="登陆"></form> 以上是sohu邮箱登陆的源代码,我们先来看一下点击“登陆”后发送给服务器的URL地址信息: 如果你在“用户”栏添入“1234” 在“口令”栏添入“5678”则发送的URL地址信息是http://login.mail.sohu.com/chkpwd.php?UserName=1234&Password=5678” 从上面的例子,你可以看出浏览器是如何将表单信息编码的首先:http://login.mail.sohu.com/chkpwd.php”是服务器端处理表单信息的程序地址(这里用到的是PHP写的服务器程序,另外还有Perl写的CGI,ASP,JSP等等)然后:用?号隔开地址与信息(?号以后的是要处理的信息)信息的格式是"NAME=VALUE"信息与信息之间用"&"隔开(注意:这之间没有空格)当然这只是基本格式浏览器还要将VALUE值转换成十六进制代码在之前加"%",一个汉字需要两个字节(当然我们也可以不用转换,但对服务器不好)(注意一点:其中空格可以用十六进制表示也可以用“+”表示)好了 以上是浏览器编码的过程,至于解码 是和编码相反的过程我们知道了这个以后 可以桌什么呢?看看下面吧!下面是一个小程序可以一次性登陆很多邮箱:<HTML><HEAD><TITLE></TITLE><s cript language="Javas cript">function search() { if(form.abc0.checked) { window.open("http://login.mail.sohu.com/chkpwd.php?UserName="; + form.UserName.value + "&Password=" + form.Password.value); } if(form.abc1.checked) { window.open("http://mail.sina.com.cn/cgi-bin/login.cgi?u="; + form.UserName.value + "&psw=" + form.Password.value); } if(form.abc2.checked) { window.open("http://reg4.163.com/CheckUser.jsp?username="; + form.UserName.value + "&password=" + form.Password.value); } if(form.abc3.checked) { window.open("http://freemail.263.net/cgi-bin/cmlogin?usr="; + form.UserName.value + "&password=" + form.Password.value); } if(form.abc4.checked) { window.open("http://mail.fm365.com/cgi-bin/legend/wmaila?username="; + form.UserName.value + "&password=" + form.Password.value); } return false; }</s cript></HEAD><BODY><form name="form" onsubmit="return(search())">用户:<input name=UserName size=10>口令:</font><input name=Password size=10 type=password><input type="checkbox" name="abc0" value="sohu" checked>搜狐<input type="checkbox" name="abc1" value="sina">新浪<input type="checkbox" name="abc2" value="163">网易<input type="checkbox" name="abc3" value="263">263.net<input type="checkbox" name="abc4" value="fm365">FM365<input name=submit type=submit VALUE="登录"></form></BODY></HTML>将上面的代码存成".HTM"文件就可以了 正如kingerq(多菜鸟)所说用户名密码是显示出来了所以那样做并不安全 function autolog() { if (!$_SESSION["username"] && $_COOKIE["username"] && $_COOKIE["password"]) { // 此处为登录操作(根据$_COOKIE["username"]和$_COOKIE["password"]查询数据库) // 刷新Cookie,注册Session变量 }}=======================Cookie中的password用MD5加密一下把这个函数写在每个页面的开头Session_start();之后即可。 求合并数组的高效方法 关于php socket .... php代码书写 fwrite写文件的时候为什么引号都自动加了斜线?在哪里控制不加? 有写过TABLE类的吗? php如何能检测到代理后面的局域网地址? 图片压缩的问题 关于email函数的? 同步刷新 (2) 哪里有php中文手册下载? 无聊了 发布APACHE+PHP的一个小BUG,不知道有人说过没有 谁能把网页中的图片提出来,并替换?(高分)
网络上的URL地址指的就是http://www.xjyouth.com/forum/default.asp这样的地址,平常我们是用不到URL地址的解码与编码的,只有在网站登陆等提交表单的情况下用到。
在介绍之前先来看下面的表单:(HTML代码写的不清楚的可以去查阅有关书集,HTML是网页的源代码,学做网页不知道这个可不行)
<form action="http://login.mail.sohu.com/chkpwd.php ;method="post">
用户:<input name="UserName" type="text">
口令:<input name="Password" type="password">
<input name="submit" type="submit" value="登陆">
</form>
以上是sohu邮箱登陆的源代码,我们先来看一下点击“登陆”后发送给服务器的URL地址信息:
如果你在“用户”栏添入“1234”
在“口令”栏添入“5678”
则发送的URL地址信息是http://login.mail.sohu.com/chkpwd.php?UserName=1234&Password=5678”
从上面的例子,你可以看出浏览器是如何将表单信息编码的
首先:http://login.mail.sohu.com/chkpwd.php”是服务器端处理表单信息的程序地址(这里用到的是PHP写的服务器程序,另外还有Perl写的CGI,ASP,JSP等等)
然后:用?号隔开地址与信息(?号以后的是要处理的信息)
信息的格式是"NAME=VALUE"信息与信息之间用"&"隔开(注意:这之间没有空格)
当然这只是基本格式
浏览器还要将VALUE值转换成十六进制代码在之前加"%",一个汉字需要两个字节(当然我们也可以不用转换,但对服务器不好)(注意一点:其中空格可以用十六进制表示也可以用“+”表示)
好了 以上是浏览器编码的过程,至于解码 是和编码相反的过程
我们知道了这个以后 可以桌什么呢?
看看下面吧!
下面是一个小程序可以一次性登陆很多邮箱:
<HTML>
<HEAD>
<TITLE></TITLE>
<s cript language="Javas cript">
function search()
{
if(form.abc0.checked)
{
window.open("http://login.mail.sohu.com/chkpwd.php?UserName="; + form.UserName.value + "&Password=" + form.Password.value);
}
if(form.abc1.checked)
{
window.open("http://mail.sina.com.cn/cgi-bin/login.cgi?u="; + form.UserName.value + "&psw=" + form.Password.value);
}
if(form.abc2.checked)
{
window.open("http://reg4.163.com/CheckUser.jsp?username="; + form.UserName.value + "&password=" + form.Password.value);
}
if(form.abc3.checked)
{
window.open("http://freemail.263.net/cgi-bin/cmlogin?usr="; + form.UserName.value + "&password=" + form.Password.value);
}
if(form.abc4.checked)
{
window.open("http://mail.fm365.com/cgi-bin/legend/wmaila?username="; + form.UserName.value + "&password=" + form.Password.value);
}
return false;
}
</s cript>
</HEAD>
<BODY>
<form name="form" onsubmit="return(search())">
用户:<input name=UserName size=10>
口令:</font><input name=Password size=10 type=password>
<input type="checkbox" name="abc0" value="sohu" checked>搜狐
<input type="checkbox" name="abc1" value="sina">新浪
<input type="checkbox" name="abc2" value="163">网易
<input type="checkbox" name="abc3" value="263">263.net
<input type="checkbox" name="abc4" value="fm365">FM365
<input name=submit type=submit VALUE="登录">
</form>
</BODY>
</HTML>
将上面的代码存成".HTM"文件就可以了
所以那样做并不安全
if (!$_SESSION["username"] && $_COOKIE["username"] && $_COOKIE["password"]) {
// 此处为登录操作(根据$_COOKIE["username"]和$_COOKIE["password"]查询数据库)
// 刷新Cookie,注册Session变量
}
}
=======================
Cookie中的password用MD5加密一下
把这个函数写在每个页面的开头Session_start();之后即可。