制作登陆系统有三种方式:1、使用HTTP认证;2、使用COOKIE;3、使用SESSION。
下面的来简述以下三种认证方式的使用方法以及特点。
1、HTTP认证
这种方法可谓简单粗暴,安全性不太好说(没看到哪个互联网上的网站采用这种方式登录),一般常见于路由器的管理页面登录。
当然使用方法也很简单,在需要登录(加密)的页面设置一个发送HTTP认证的首部就可以了。
使用效果如下:
认证失败返回错误信息。
2、使用COOKIE
COOKIE是储存在浏览器的数据。可以根据COOKIE来储存登录信息,即有COOKIE代表登录了,没COOKIE代表没登录,注销的时候销毁COOKIE即可。
理论上讲,只要用户不清理COOKIE信息,COOKIE数据可以永存(只要把时间设置为无限即可)。
COOKIE的好处是你可以设置一个合理的时限来让用户不必频繁的重复登录又能恰到好处的保护隐私。
例如30分钟内用户不必反复登录,30分钟后(用户可能已经离开)又自动登出。
设置COOKIE只需要调用setcookie()函数即可。
验证是否登录只需要检查有没有COOKIE值。
注销也非常简单,COOKIE有时限会自动销毁,如果希望立马销毁只需要把时间改为过期即可。
具体使用需要设计一个登陆界面的表单,用户提交用户名和密码,php脚本把用户提交的用户名密码拿到数据库进行比对,如果比对信息正确,就把用户ID(或者其他一些信息)传递到COOKIE中储存,这样就知道用户已经登陆了。
在需要登陆的页面,例如用户的个人信息设置页,只需要检查有没有相关的COOKIE信息。
3、SESSION
SESSION可以理解为建立在浏览器和服务器之间的一个会话,SESSION是储存在服务器上的临时数据,当关闭浏览器(即会话关闭)的时候,该临时数据会被自动销毁。
意思就是:你关闭了浏览器,你就得重新登录。
SESSION跟COOKIE很相似,只是COOKIE的信息储存在用户端,SESSION的数据储存在服务端,COOKIE可以设置生命时间,而SESSION的生命随会话的终止而终止。
所以SESSION的用法跟COOKIE也很相似,只是缺少了时间参数。
SESSION跟COOKIE如此相似,所以判断是否登录的代码也基本相同:
如果想要在关闭浏览器之前就注销,需要做以下工作