PHP 实现超简单的SESSION与COOKIE登录验证功能示例
吾爱主题
阅读:155
2021-09-22 16:28:00
评论:0
本文实例讲述了PHP 实现超简单的SESSION与COOKIE登录验证功能。分享给大家供大家参考,具体如下:
第一步,制作一个提交信息的表单页面
这里我不过多叙述,都能懂的
把他命名为login.php
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | <!DOCTYPE html> <html> <head> <meta charset= "utf-8" > <title>管理页面登录</title> </head> <body> <form action= "index_do.php" method= "post" > <table> <tr> <td> 用户身份: </td> <td> <input type= "radio" name= "role" value= "admin" />管理员 <input type= "radio" name= "role" value= "teacher" />任职教师 <input type= "radio" name= "role" value= "student" />学生 </td> </tr> <tr> <td> <label> 用户: </label> </td> <td> <input type= "text" name= "name" /> </td> </tr> <tr> <td> <label> 密码: </label> </td> <td> <input type= "password" name= "pas" /> </td> </tr> <tr> <td style= "text-align: center;" colspan= "2" > <input type= "submit" name= "login" value= "登录" /> <input type= "reset" name= "reset" value= "取消" /> </td> </tr> </table> </form> </body> </html> |
第二步,制作一个接受表单信息并且进行判断的php文件
在同目录的文件夹里创建一个名为index_do.php
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | <?php session_start(); //启用session header( "Content-type:text/html;charset=utf-8" ); //设置编码格式为utf-8 date_default_timezone_set( 'PRC' ); //调整时区 //判断是否点击了登录按钮 if (isset( $_POST [ "login" ])) { $name = $_POST [ "name" ]; //用户名 $pas = $_POST [ "pas" ]; //密码 $role = $_POST [ "role" ]; //用户身份 $time = date ( "Y:m:d H:i:s" ,time()); //获取登录时的时间 $ip = $_SERVER [ "SERVER_ADDR" ]; //接收ip位置 //判断是否为空 if ( $name == "" && $pas == "" ) { echo "<script>alert('用户名和密码不能为空!')</script>" ; header( "location:login.php" ); } else { //判断用户身份是否为管理员 if ( $role == "admin" && $name == "Rarin" ) { //如果是管理员,并且用户名是Rarin,那么则把他们输入进session里 $_SESSION [ "name" ] = $name ; $_SESSION [ "pas" ] = $pas ; $_SESSION [ "role" ] = $role ; $_SESSION [ "ip" ] = $ip ; $_SESSION [ "time" ] = $time ; header( "location:index.php" . "?role=$role" ); //成功后返回index.php页面并保存role值 } elseif ( $pas == "2002" &&( $role == "teacher" || $role == "student" )) { //不是管理员,是老师或者学生的时候,并且密码为2002,那么把他们输入进cookie里 setcookie( "name" , $name ,time()+3600); //创建cookie并给他输入值 setcookie( "pas" , $pas ,time()+3600); setcookie( "role" , $role ,time()+3600); setcookie( "ip" , $ip ,time()+3600); setcookie( "time" , $time ,time()+3600); header( "location:index.php" . "?role=$role" ); } } } ?> |
第三步,创建一个信息文件
同目录下创建一个名为index.php
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | <?php session_start(); //启用session header( "Content-type:text/html;charset=utf-8" ); date_default_timezone_set( 'PRC' ); //调整时区 ?> <!DOCTYPE html> <html> <head> <title>登陆成功</title> </head> <body> <?php $role = $_GET [ "role" ]; //接收数据 //判断是否为管理员身份 if ( $role == "admin" ) { //判断是否接收到了数据,有,则以SESSION方式登录 if (! empty ( $_SESSION [ "time" ])) { //以session方式输出 echo "您好," . $_SESSION [ "name" ]. "<br>" ; echo "您的密码:" . $_SESSION [ "pas" ]. "<br>" ; echo "您的ip:" . $_SESSION [ "ip" ]. "<br>" ; echo "SESSION登陆成功!您上次访问的时间是:" . $_SESSION [ "time" ]. "<br>" ; echo "<form> <input type= 'submit' name= 'unlink' value= '销毁' /> </form>"; } else { echo "<script>alert('未登录!')</script>" ; header( "location:login.php" ); } } elseif ( $role == "teacher" || $role == "student" ) { //判断是否接收到了数据,有,则以COOKIE方式登录 if (! empty ( $_COOKIE [ "time" ])) { //以cookie方式输出 echo "您好," . $_COOKIE [ "name" ]. "<br>" ; echo "您的密码:" . $_COOKIE [ "pas" ]. "<br>" ; echo "您的ip:" . $_COOKIE [ "ip" ]. "<br>" ; echo "COOKIE登陆成功!您上次访问的时间是:" . $_COOKIE [ "time" ]. "<br>" ; echo "<form> <input type= 'submit' name= 'unlinkCok' value= '销毁' /> </form>"; } else { echo "<script>alert('未登录!')</script>" ; header( "location:login.php" ); } } else { echo "<script>alert('非法用户!')</script>" ; header( "location:login.php" ); } ?> </body> </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文件里
希望本文所述对大家PHP程序设计有所帮助。
原文链接:https://blog.csdn.net/weixin_44596681/article/details/88851523
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。