当前位置:首页 > 综合实例 > 列表

php 简单的登入登出实例程序(session)

发布:smiling 来源: PHP粉丝网  添加日期:2014-02-21 08:23:38 浏览: 评论:0 

利用php实例登入登出我们一般会借助于session来保存记录用户登录成功的信息,然后退出时我们再使用unset来清除session即可实现用户登入登出功能了,下面我来介绍一个简单的实例。

关于会话处理:

HTTP 是一种无状态的协议,说明每次请求的处理都与之前或之后的 请求无关,但是为了能够调整用户特有的行为和首选项,出现了一种在客户端存储少量信息(常称为cookie)的实践,但由于 cookie 大小的限制、所允许的 cookie 数量以及 cookie 的实现上的各种不一致,出现了另外一种解决方案:会话处理。

会话处理的实现方式是为每位网站访问者分配一个称之为会话 ID(SID)的唯一标识属性,然后将此 SID 与任意数量的数据关联。

开始会话:session_start();

创建会话变量:$_SESSION['username'] = “jason”;

删除会话变量:unset($_SESSION['username']);

简单的登入登出,实例代码如下:

  1. $supervisor = "admin"; 
  2. $superpsw = "passwd"; 
  3. // 检查是否提交表单 
  4. if (isset($_POST['superadmin'])) 
  5. { 
  6. if (!($_POST['supername'] == $supervisor) || !($_POST['superpass'] == $superpsw)) 
  7. { 
  8. echo "用户名或密码错误"; 
  9. exit; 
  10. } 
  11. else 
  12. { 
  13. session_start(); 
  14. $_SESSION["superlogin"] = $_POST['supername']; 
  15. } 
  16. } else { 
  17. session_start(); 
  18. // 检查是否设置了会话变量,即是否已经登入,如果没有,显示登入页面 
  19. if (! isset($_SESSION["superlogin"]) ) 
  20. { 
  21. echo "<form name='form1' method='post' action='$_SERVER[PHP_SELF]'>"; 
  22. echo "<div align='center'>请输入管理员密码<br />"; 
  23. echo "管理员"; 
  24. echo "<input type='text' name='supername'><br />"; 
  25. echo "密  码"; 
  26. echo "<input type='password' name='superpass'><br />"; 
  27. echo "<input type='submit' name='superadmin' value='进入'><br />"; 
  28. echo "<input type='reset' name='cancel' value='重写'></div>"; 
  29. echo "</form>"; 
  30. exit; 
  31. } 
  32. } 
  33. // 由用户销毁会话变量,登出 
  34. if (isset($_GET['logout'])) { 
  35. unset($_SESSION['superlogin']); 
  36. header("Location:index.php"); 
  37. } 

假设将此文件命名为include.php,将其包含到要验证登入的页面即可,例如 index.php,实例代码如下:

  1. <?php 
  2.     require “include.php”; 
  3. ?> 
  4.     <html> 
  5.     <head> 
  6.     <title>管理</title> 
  7.     <meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″> 
  8.     </head> 
  9.     <body> 
  10.     <p><a href=”index.php?logout=1″>登出</a> 
  11.     <p>欢迎进入</p> 
  12.     </body> 
  13.     </html> 

如此访问 index.php 页面时将进入登入页面,登录后显示 index.php 页面内容,这个过程一直持续到用户结束会话,如关闭浏览器或点击注销按钮,但是会话本身在PHP服务器有一个默认的生存期。

有效会话的持续时间由 php.ini 所控制,默认为1440秒,即24分钟

session.gc_maxlifetime = 1440

PS:本文是个范例,用简单的代码来做说明,实际应用中会采用更加复杂的控制机制。

Tags: php 简单 登入 登出 实例程序

分享到: