构建网站:用户的登入认证

前面已经介绍了几个 php 的功能技巧,从现在开始就来充分利用组合这些技巧来构建一个强大的网站,以后会陆续地介绍一些高级和基本的技巧如何在网站中应用.
建立一个好的网站,用户登认证功能是必不可少的,同样的在这儿我只是介绍思路和做法,并不会添鸭式地一步一步的列出步骤.
首先需要一个可用来记录用户资料的数据库,其内容应当至少包括姓名和密码,自然根据需要可在数据库增加相应的字段.
为了使数据库有资料,必须要有个注册程序,通过注册用户可将资料存进数据库,注册程序的实现非常地简单,仅仅是发出存入数据库的指令,在这里就不再描述了,这里要提出的是,出于对用户资料安全的考虑,最好为用户的密码加密,还有数据库不应出现相同的姓名,否则会乱套.
下面介绍的重点是用户登入和登出的实现,用户登入的功能用 session 和 cookie 都能完成,我在这儿要介绍的是如何用 cookie 来完成这个功能的.
其实用户登入的整个过程理解起来很简单,程序将用户输入的姓名和密码与数据库存储的资料进行对比,数据库有此用户的资料就通过,没有则拒绝该用户通过.
来看看登入程序 login.php 的工作流程:
用户提交资料到 login,php,login.php 就会经过如下处理:
$passwd=md5($passwd);
$result=mysql_query("select * from user where name='$name' and passwd='$passwd'");
之所以密码要经过 md5 处理,是因为数据库存储的是经过 md5 加密过的密码,判断有无此用户存在,不存在或密码错误则给出些告警给该用户,存在此用户的资料的话,就可以将该用户的资料设置为 cookie 值,如下:
setcookie("cookiename",$name,time()+18000,"","/");
setcookie("cookiepasswd",$passwd,time()+18000,"","/");
如果担心用户因忘记登出而造成安全问题的话,就把时间设置去除:
setcookie("cookiename",$name,"","/");
setcookie("cookiepasswd",$passwd,"","/");
这样当用户关闭浏览器时,cookie 的设置就失效了,也就是说用户下一次来的时候,必须重新登入!虽然有了这个关闭浏览器就让 cookie 失效的安全功能,但还是需要一个用户登出的功能以策安全,登出功能也就是让记载用户资料的 cookie 失效的功能,完成这个功能很简单,只需要将时间置为 -1,并把 cookie 变量置空就行了:
logout.php:
setcookie('cookiename',"",time()-1,'/',"");
setcookie('cookiepasswd',"",time()-1,'/',"");
$cookiename="";
$cookiepasswd="";
这样一个完整的用户认证功能就完成了.

时间: 2024-08-02 12:54:15

构建网站:用户的登入认证的相关文章

ASP.NET在IE10中无法判断用户已登入及Session丢失问题解决方法_实用技巧

今天发现在IE10中登录我公司的一个网站时,点击其它菜单,页面总会自动重新退出到登录页,后检查发现,IE10送出的HTTP头,和.AUTH Cookie都没问题,但使用表单验证机制(FormsAuthentication)却无法判断该用户已登入,保存的Session总会丢失. 后查实这是ASP.NET 2.0,3.5和4.0的Bugs,因这些版本无法识别IE10的User-Agent标头字符串,所以无法识别用户浏览器的版本,从而导至了ASP.NET的特定功能失效,认为游览器不支持Cookies功

【Best Practice】基于阿里云数加·MaxCompute及Quick BI构建网站用户画像分析

前文背景:[Best Practice]基于阿里云数加·StreamCompute快速构建网站日志实时分析大屏   开通阿里云数加产品 前提条件 为了保证整个实验的顺利开展,需要用户使用开通相关产品及服务,包括DataHub.MaxCompute.AnalyticDB.Data IDE.Quick BI.      业务场景 数据来源于网站上的HTTP访问日志数据,基于这份网站日志来实现如下分析需求: n   统计并展现网站的PV和UV,并能够按照用户的终端类型(如Android.iPad.iP

[Emacs-cgi] 登入页面

最新进展:Emacs-cgi 加入对存取 Cookie 和 Session 的支持,以及页面之间跳转(redirect和forward).项目地址:https://github.com/redraiment/emacs-cgi.下面以一个登入页面作为示例: 首先是首页:如果用户为登入,显示输入框提示用户输入用户名:否则输出欢迎词. #!/usr/local/bin/elisp (require 'cgi) (html (head (title "Hello Session") (met

jsp网站开发-jsp网站统计登入用户人数

问题描述 jsp网站统计登入用户人数 怎样在一个jsp网站中统计在线人数?就是当用户通过确认用户名和密码进行正确登入的时候,显示当前在线用户数量. 解决方案 登录时将记录在表里,然后count下多少条就OK啦,退出时别忘记去掉就行了

数据包-如何用C#的winform程序后台访问并且登入大型网站?

问题描述 如何用C#的winform程序后台访问并且登入大型网站? 如何用C#的winform程序后台访问并且登入大型网站?我想做一个百度贴吧一键签到的功能来练手.大致想法是用C# 写一个winform程序用户输入自己的帐号密码之后 我模拟一个数据包发送给百度 得到一个类似session的东西然后再去进行贴吧签到(应该是访问某个地址即可,暂时还没研究) 难点就是 怎么用c#来完成我上述说的网络访问的过程.. 解决方案 用HttpWebRequest post数据,post的格式你可以先抓包分析一

初学.NET的小菜鸟求救~~用户登入+信息查询问题………………急~十万火急

问题描述 老师要求做一个简单的住宅区里用的小页面~~~~是用VB.NET和ACCESS来做~~功能要求是--1,住户登入页面(账号为住户的门牌号,密码是户主的身份证号)2,登入后进入查询页面--说白了也就是一张表格--主要是查询住户上月由物业管理收缴的各项费用(卫生费,治安费,车位费等)和代缴的费用(水费电费煤气费等)3,管理员登入界面,登入后可以添加修改用户信息,以及收费信息.刚学.NET~~代码我不太懂,特别是数据库链接的问题~~~~~我同学说不用代码,LOGIN可以直接链接到数据库的--但

会员登入-关于网站问题求解?网站可以进去就是会员登不了

问题描述 关于网站问题求解?网站可以进去就是会员登不了 大家好!!欢迎点击进来看此贴! 现在我碰到一个问题,在注册国外网站的会员时 很多信息都填正确了,就是验证码填对了都老实显示验证码错误,这是为什么? 还有在登陆佳礼中文论坛时,为什么账号和密码都对 就是登不进去或者是显示密码错误,明明都是对的???why ??why??求解?? 我个人是觉得应该是IP 问题?你们认为呢? 还有我平时会用些代理器上国外网站 但是就是在这电脑上想要登入的网址都没办法登入会员. 在自己的笔记本电脑上(在家里的上网可

用户管理-设置linux普通用户不能远程直接登入,需要另一个允许远程登入用户su切换

问题描述 设置linux普通用户不能远程直接登入,需要另一个允许远程登入用户su切换 出于安全考虑,要实现标题的登入方法,该怎么设置?请大虾指点-

php-PHP函数curl实现模拟登入网站

问题描述 PHP函数curl实现模拟登入网站 我想用curl函数实现模拟登入http://www.5173.com/网站,可是就是登入不了, 求大神指导 解决方案 用fiddler调试下,看看是返回什么.根本无法连接,还是服务器端的报错,还是你没有带上正确的cookie 这种山寨网站一般稳定性都很差的. 解决方案二: curl是用的post方式登录网站?提交的参数都填对数据了没. 解决方案三: 解决方案四: 把你的代码用文本形式发出来,我可以帮你看看 解决方案五: 代码发出来看看.... 解决方