开元项目后期,身份验证

首先简单的概括一下相关的要点。

会话控制:

  因为http是无状态的协议,所以web应用有了很大的局限性,如果不能记录一些用户的状态等信息,web所能做的事就非常有限,提供会话控制就是为了弥补这一个缺陷。PHP4及以后的版本,自身包含了会话控制函数。自从超级全局变量概念引入以来,会话控制的方法就发生了一些变化。现在可以用$_SESSION超级全局变量。

  PHP的会话通过唯一的会话ID来驱动,这个ID由PHP生成,是一个加密的随机数字,在会话周期中会保存在客户端,可以保存在COOKIE中,也可以通过URL在网络上传递。会话变量的内容保存在服务器上.

 

通过session来控制用户身份验证:

  登陆时post 用户名密码,密码可以加密,Php验证链接数据库,验证是否存在合法用户。验证成功后设置session全局变量,可以记录下用户名之类的。在之后的页面中,需要验证用户身份的地方通过验证session设置下的变量来完成。退出登陆后要销毁变量,然后关闭session。

 

用php来做session时,每个要调用的页面都必须在最上面(绝对是代码的第一行!!!)打开session,不明白是为什么。

现在感觉这个项目真是典型的入门作业,从毫无架构的状态开始写,做到身份验证终于感觉到了代码的大量重用,和页面的调度很麻烦。现在开始分离出一些功能函数,另外写了很多纯逻辑的php,像logout.php,在其中处理完相应的任务逻辑之后,利用header("location:")跳转来调度页面。header()来实现跳转似乎也有和session_start()同样的要求,就是之前不能有任何输出,所以说这其中的因为所以还是没搞清楚,回头看看。

posted on 2012-03-15 22:17  二三二  阅读(195)  评论(0编辑  收藏  举报