PHP(基本语法)PHP中的Cookie---登录案例
2023-09-11 14:19:05 时间
文件结构:
login.html:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <form action="./loginCookie.php" method="post"> 姓名:<input type="text" name="username" placeholder="请输入用户名"><hr> 密码:<input type="password" name="password" placeholder="请输入密码"><hr> <input type="submit" value="提交按钮"> </form> </body> </html>
loginCookie.php:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <?php include 'config.php'; /**1、连接数据库 */ $conn = mysqli_connect(DB_HOST,DB_USER,DB_PWD,DB_NAME); if(!$connect){ die("could not connect:".mysqli_error()); }else{ echo "连接成功<br>"; /**识别cookie,判断是否访问过,有无cookie或者是否过期 */ if (($_COOKIE['username'] != null)&&($_COOKIE['password'] != null)) { $userName = $_COOKIE['username']; $password = $_COOKIE['password']; /** 连接数据库,从db获取用户信息 */ // $conn = mysqli_connect('localhost','root','root','login'); $res = mysqli_query($conn,"select * from user where `username` = '$userName' "); $row = mysqli_fetch_assoc($res); if ($row['password'] == $password) { /** 验证通过后跳转到登录后的欢迎页面 */ header('location: welcome.php' . "?username=$userName"); } }else{ echo("上一个COOKIE过期"); } /**如果第一次访问或者cookie过期则重新到数据库查找对比 */ if(($_POST['username'] != null)&&($_POST['password'] != null)){ $userName = $_POST['username']; $password = $_POST['password']; /** 连接数据库,从db获取用户信息 */ // $conn = mysqli_connect('localhost','root','root'); // mysqli_select_db($conn,'login'); $sql = "select * from user where `username` = '$userName' "; $res = mysqli_query($conn,$sql); $row = mysqli_fetch_assoc($res);/**从结果集中取得一行作为关联数组 */ /**执行判断--用户名和密码是否正确 */ if($row){ /**echo('用户名存在');用户名存在的情况下判断密码 */ if ($row['password'] == $password) { /** * 密码验证通过,设置cookies,把用户名和密码保存在客户端 * 设置时效一个月60*60*24*30,一个月后这个cookie失效。这里我们设置60s失效,为time()+60 */ setcookie('username',$userName,time()+60); setcookie('password',$password,time()+60); /** 最后跳转到登录后的欢迎页面 */ header('location: welcome.php' . "?username=$userName"); } }else{ /**不存在该用户 */ exit('用户名错误'); } }else{ echo "请输入用户名或密码"; } } /**5、关闭连接 */ $close = mysqli_close($connect); if(!$close){ die("关闭数据库失败"); }else{ echo "关闭成功"; } ?>
config.php:
<?php //数据库服务器 define('DB_HOST', 'localhost'); //数据库用户名 define('DB_USER', 'root'); //数据库密码 define('DB_PWD', 'root'); //数据库名 define('DB_NAME', 'login'); //字符集 define('DB_CHARSET', 'utf8'); ?>
welcome.php:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <?php $user = $_GET['username']; echo "欢迎"."<h1>".$user."</h1>"; ?>
.
相关文章
- php之快速入门学习-13(PHP 循环 - While 循环)
- PHP 中 ini_set() 修改 php 内存限制及检查内存限制方法
- 【MATLAB教程案例44】通过matlab学习三维曲面的建模,颜色,透明度,动态变化等——以海浪曲面函数为例
- 【FPGA教程案例32】通信案例2——基于FPGA的FSK调制信号产生
- 175 Scala 项目案例(Akka简介)
- 前端php测试案例
- SSM整合案例分析(详解)
- Nginx + php-fpm 执行 PHP 脚本超时 报错 502 Bad Gateway + 504 Gateway Time-out 的解决办法
- 《Android传感器开发与智能设备案例实战》——导读
- 《精通移动App测试实战:技术、工具和案例》一1.5 搭建Android开发环境
- DevOps落地,这里有几个案例想和你聊聊!
- springboot 整合swagger入门案例
- 程序员加入创业公司失败案例
- 转 php 框架 Php 依赖框架 后台 调用python 脚本
- 【uni-app】详细总结uni-app基础知识和如何配置项目,运行到模拟器和小程序端,附案例和图(建议收藏)
- 数据分析实际案例之:pandas在餐厅评分数据中的使用
- php base64不能解码_PHP base64编码后解码乱码的解决办法
- php面试题之三——PHP语言基础(基础部分)
- 23:LVS客户端配置脚本案例
- 案例:用Redis来存储关注关系(php版)
- 微服务实战(四):服务发现的可行方案以及实践案例