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.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容