本文实例讲述了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