PHP 实现超简单的SESSION与COOKIE登录验证功能示例

这篇文章主要介绍了PHP 实现超简单的SESSION与COOKIE登录验证功能,结合实例形式详细分析了PHP使用cookie与session实现登录验证的相关操作步骤与注意事项,需要的朋友可以参考下。

本文实例讲述了PHP 实现超简单的SESSION与COOKIE登录验证功能,分享给大家供大家参考,具体如下:

第一步,制作一个提交信息的表单页面

这里我不过多叙述,都能懂的

把他命名为login.php

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>管理页面登录</title>
  6. </head>
  7. <body>
  8. <form action="index_do.php" method="post" >
  9. <table>
  10. <tr>
  11. <td>
  12. 用户身份:
  13. </td>
  14. <td>
  15. <input type="radio" name="role" value="admin" />管理员
  16. <input type="radio" name="role" value="teacher" />任职教师
  17. <input type="radio" name="role" value="student" />学生
  18. </td>
  19. </tr>
  20. <tr>
  21. <td>
  22. <label>
  23. 用户:
  24. </label>
  25. </td>
  26. <td>
  27. <input type="text" name="name" />
  28. </td>
  29. </tr>
  30. <tr>
  31. <td>
  32. <label>
  33. 密码:
  34. </label>
  35. </td>
  36. <td>
  37. <input type="password" name="pas" />
  38. </td>
  39. </tr>
  40. <tr>
  41. <td colspan="2">
  42. <input type="submit" name="login" value="登录" />
  43. <input type="reset" name="reset" value="取消" />
  44. </td>
  45. </tr>
  46. </table>
  47. </form>
  48. </body>
  49. </html>

第二步,制作一个接受表单信息并且进行判断的php文件

在同目录的文件夹里创建一个名为index_do.php

  1. <?php
  2. session_start();//启用session
  3. header("Content-type:text/html;charset=utf-8");//设置编码格式为utf-8
  4. date_default_timezone_set('PRC'); //调整时区
  5. //判断是否点击了登录按钮
  6. if (isset($_POST["login"])) {
  7. $name = $_POST["name"];//用户名
  8. $pas = $_POST["pas"];//密码
  9. $role = $_POST["role"];//用户身份
  10. $time = date("Y:m:d H:i:s",time());//获取登录时的时间
  11. $ip = $_SERVER["SERVER_ADDR"];//接收ip位置
  12. //判断是否为空
  13. if ($name==""&&$pas=="") {
  14. echo "<script>alert('用户名和密码不能为空!')</script>";
  15. header("location:login.php");
  16. }else{
  17. //判断用户身份是否为管理员
  18. if ($role=="admin"&&$name=="Rarin") {
  19. //如果是管理员,并且用户名是Rarin,那么则把他们输入进session里
  20. $_SESSION["name"] = $name;
  21. $_SESSION["pas"] = $pas;
  22. $_SESSION["role"] = $role;
  23. $_SESSION["ip"] = $ip;
  24. $_SESSION["time"] = $time;
  25. header("location:index.php"."?role=$role");//成功后返回index.php页面并保存role值
  26. }elseif ($pas=="2002"&&($role=="teacher"||$role=="student")) {
  27. //不是管理员,是老师或者学生的时候,并且密码为2002,那么把他们输入进cookie里
  28. setcookie("name",$name,time()+3600);//创建cookie并给他输入值
  29. setcookie("pas",$pas,time()+3600);
  30. setcookie("role",$role,time()+3600);
  31. setcookie("ip",$ip,time()+3600);
  32. setcookie("time",$time,time()+3600);
  33. header("location:index.php"."?role=$role");
  34. }
  35. }
  36. }
  37. ?>

第三步,创建一个信息文件

同目录下创建一个名为index.php

  1. <?php
  2. session_start();//启用session
  3. header("Content-type:text/html;charset=utf-8");
  4. date_default_timezone_set('PRC'); //调整时区
  5. ?>
  6. <!DOCTYPE html>
  7. <html>
  8. <head>
  9. <title>登陆成功</title>
  10. </head>
  11. <body>
  12. <?php
  13. $role = $_GET["role"];//接收数据
  14. //判断是否为管理员身份
  15. if ($role=="admin") {
  16. //判断是否接收到了数据,有,则以SESSION方式登录
  17. if (!emptyempty($_SESSION["time"])) {
  18. //以session方式输出
  19. echo "您好,".$_SESSION["name"]."<br>";
  20. echo "您的密码:".$_SESSION["pas"]."<br>";
  21. echo "您的ip:".$_SESSION["ip"]."<br>";
  22. echo "SESSION登陆成功!您上次访问的时间是:".$_SESSION["time"]."<br>";
  23. echo "<form>
  24. <input type='submit' name='unlink' value='销毁' />
  25. </form>";
  26. }else{
  27. echo "<script>alert('未登录!')</script>";
  28. header("location:login.php");
  29. }
  30. }elseif ($role=="teacher"||$role=="student") {
  31. //判断是否接收到了数据,有,则以COOKIE方式登录
  32. if (!emptyempty($_COOKIE["time"])) {
  33. //以cookie方式输出
  34. echo "您好,".$_COOKIE["name"]."<br>";
  35. echo "您的密码:".$_COOKIE["pas"]."<br>";
  36. echo "您的ip:".$_COOKIE["ip"]."<br>";
  37. echo "COOKIE登陆成功!您上次访问的时间是:".$_COOKIE["time"]."<br>";
  38. echo "<form>
  39. <input type='submit' name='unlinkCok' value='销毁' />
  40. </form>";
  41. }else{
  42. echo "<script>alert('未登录!')</script>";
  43. header("location:login.php");
  44. }
  45. }else{
  46. echo "<script>alert('非法用户!')</script>";
  47. header("location:login.php");
  48. }
  49. ?>
  50. </body>
  51. </html>

知识点:

1.session_start()函数启用session

2.date_default_timezone_set('PRC')调整为北京时间

3.$_SERVER["SERVER_ADDR"]接收ip地址

4.header("location:index.php"."?role=$role")将这个值保存到index.php文件里