登录功能设计(php+mysql)

一   登录功能

        1. 创建一个登录页面(login.php),包含一个表单,用户输入用户名和密码。
        2. 在表单的提交事件中,使用PHP代码处理用户输入的用户名和密码。
        3. 首先,连接MySQL数据库。然后,使用查询语句检查用户输入的用户名和密码是否匹配数据库中的记录。
        4. 如果匹配成功,将用户ID和用户名存储在会话变量中,表示用户已登录。
        5. 重定向用户到另一个页面,比如主页(home.php)。

        示例代码:

// login.php
<?php
session_start();// 处理表单提交事件
if ($_SERVER['REQUEST_METHOD'] == 'POST') {// 获取用户输入的用户名和密码$username = $_POST['username'];$password = $_POST['password'];// 连接MySQL数据库$conn = mysqli_connect('数据库主机', '用户名', '密码', '数据库名');// 查询用户名和密码是否匹配$query = "SELECT * FROM users WHERE username='$username' AND password='$password'";$result = mysqli_query($conn, $query);if (mysqli_num_rows($result) > 0) {// 匹配成功,将用户ID和用户名存储在会话变量中$row = mysqli_fetch_assoc($result);$_SESSION['user_id'] = $row['id'];$_SESSION['username'] = $row['username'];// 重定向用户到主页header('Location: home.php');exit();} else {// 匹配失败,显示错误消息echo '用户名或密码错误';}// 关闭数据库连接mysqli_close($conn);
}
?><!-- 登录页面表单 -->
<form method="POST" action=""><input type="text" name="username" placeholder="用户名" required><input type="password" name="password" placeholder="密码" required><button type="submit">登录</button>
</form>
```

二、 退出功能

        1. 创建一个退出页面(logout.php)。
        2. 在该页面的代码中,删除当前会话中的用户ID和用户名。
        3. 重定向用户到另一个页面,比如登录页面(login.php)。

        示例代码:

// logout.php
<?php
session_start();// 删除会话中的用户ID和用户名
unset($_SESSION['user_id']);
unset($_SESSION['username']);// 重定向用户到登录页面
header('Location: login.php');
exit();
?>

三   客户身份确定

这里是指一个网站或应用程序的功能,包括登录、退出等,可以通过权限控制来实现。

1. 创建一个数据库表,用于存储用户信息和权限等级。表结构如下:

CREATE TABLE users (id INT(11) AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50) NOT NULL,password VARCHAR(255) NOT NULL,role ENUM('admin', 'user') NOT NULL DEFAULT 'user'
);

2. 在登录功能的代码中,查询出用户的权限等级。

示例代码:

// login.php
if (mysqli_num_rows($result) > 0) {$row = mysqli_fetch_assoc($result);$_SESSION['user_id'] = $row['id'];$_SESSION['username'] = $row['username'];// 获取用户的权限等级$role = $row['role'];// 根据用户权限等级重定向到不同的页面if ($role == 'admin') {header('Location: admin.php');exit();} else {header('Location: user.php');exit();}
}

3. 创建不同的页面(如admin.php和user.php),根据用户的权限等级来显示不同的内容或功能。

示例代码:

// admin.php
<?php
session_start();// 检查用户是否登录
if (!isset($_SESSION['user_id'])) {header('Location: login.php');exit();
}// 检查用户的权限等级
if ($_SESSION['role'] != 'admin') {header('Location: user.php');exit();
}// 显示管理员功能
echo '欢迎管理员' . $_SESSION['username'];// 其他管理员功能代码...?>// user.php<?php
session_start();// 检查用户是否登录
if (!isset($_SESSION['user_id'])) {header('Location: login.php');exit();
}// 检查用户的权限等级
if ($_SESSION['role'] != 'user') {header('Location: admin.php');exit();
}// 显示普通用户功能
echo '欢迎用户' . $_SESSION['username'];// 其他用户功能代码...?>

以上是一个简单的实现思路和示例代码,其中的数据库连接、查询和权限控制等可能还需要根据具体需求进行修改和完善。

四、 跳蚤市场登录模块 

1.  效果

效果如下所示:

2. 登录

完整代码如下:

<?php 
session_start(); //启动会话
include "conn.php"; //引入数据库文件 
//获取数据   
if(isset($_POST['nickname']) && isset($_POST['pwd'])){//客户身份确定$nickname=$_POST['nickname'];$pwd=$_POST['pwd'];$sql="select * from custom where nickname='".$nickname."'";$result=$conn->query($sql);if($result->num_rows==0){echo "<script>alert('抱歉,你还不是我们的会员!请先注册')</script>";echo "<script>location.href='register.php'</script>";} else {$row=$result->fetch_array();if($pwd==$row['password']){$_SESSION['nickname']=$row['nickname'];$_SESSION['id']=$row['custom_id'];$_SESSION['sex']=$row['sex'];echo "<script>location.href='index.php'</script>";} else {echo  "<script>alert('密码有误!');</script>";echo "<script>location.href='login.php'</script>";}}//关闭数据库连接$conn->close();
}
?>
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>我的登录页面</title>
<script>function login(){var nickname=document.loginform.nickname.value;var pwd=document.loginform.pwd.value;if(nickname==''){alert('请输入呢称!');return false;}if(pwd==''){alert('请输入密码!');return false;}return true;}
</script>
<style>a { color:#00f;text-decoration: none;font-size:14px;}img {border-width: 0px 0px 0px 0px;}#middle {position: relative;background-color: #cccccc;}#fm {position: absolute;top:100px;left:150px;}#fm h1{color:red;}#fm p{color:blue;}#logintable {background-color: #ffffff;margin-right:40px;}#logintable h1{color:red;}.input_label{color:blue;font-size:20px;font-weight: bold;padding-left:40px;}.input{border:solid 1px blue;font-size:16px;height:30px;width:240px;}.button{background-color: blue;color:white;font-size:18px;font-weight:bold;height:30px;width:240px;border-width:0px;}
</style>
</head>
<body>
<div align="center">
<iframe src='top.html' style='border:none;width:1020px; margin-bottom:-10px;'>
</iframe>
</div><div align="center">
<!--登录表单-->
<table width='1000' height='500' id='middle'><tr><td><div id='fm'><h1>省钱、省力、省时间</h1><p>限时抢购、特惠热卖、配送上门、满百包邮</p><img src='image\login.png' width='160' height='160' ></div><table  width='430' height='360' align='right' id='logintable'><form name='loginform' action='' method='post' onsubmit="return login()"><caption><h1>跳蚤市场用户登录</h1></caption><tr height='20'><td colspan="3"></td></tr><tr><td><span class='input_label'>呢称</span></td><td colspan='2'><input type='text' name='nickname'  class='input'></td></tr><tr><td><span class='input_label'>密码</span></td><td colspan='2'><input type='password' name='pwd' class='input'></td></tr><tr><td colspan='3' align='center'><input type='submit' value='登录' class='button'></td></tr><tr align='center'><td width="20%"><a href="index.php">首页</a></td><td><a href="logout.php">退出</a></td><td><a href="register.php">注册</a></td></tr></form></table></td>	</tr>
</table>	
</div><div align="center"><iframe src='bottom.html' style='border:none;width:1020px; margin-bottom:-10px;'>
</div>
</body>
</html>

3.  头部

top.html 代码 如下所示:

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>网站头部</title>
</head>
<style>#top{position: relative;background-color:#ccc;height:100px;}#title_1{position:absolute;top:10px;left:200px;color:red;font-size:48px;}#title_2{position:absolute;top:10px;left:400px;color:red;font-size:64px;}#title_3{position:absolute;top:10px;left:600px;color:red;font-size:48px;}#title_4{position:absolute;top:10px;left:800px;color:red;font-size:64px;}#login_reg{height:100px;text-align: right;}a { font-size:16px;text-decoration:none; padding-right:20px;}</style>
<body>
<div id='top'><div id='login_reg'><a href='login.php' target='_parent'>登录</a>&nbsp;&nbsp;&nbsp;<a href='register.php' target='_parent'>注册</a></div><span id='title_1'>跳</span><span id='title_2'>蚤</span><span id='title_3'>市</span><span id='title_4'>场</span><table width='980' align='center' border='0'><tr align="center"><td><a href="index.php" target='_parent'>首页</a></td><td><a href="publish_sell.php" target='_parent'>发布出售信息</a></td><td><a href="publish_buy.php" target='_parent'>发布求购信息</a></td><td><a href="product.php" target='_parent'>商品管理</a></td><td><a href="shopping_cart.php" target='_parent'>我的购物车</a></td></tr></table>
</div>
</body>
</html>

4 .  底部

bottom.html 代码如下所:

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>网站底部</title>
<style>#bottom{background-color:#ccc;padding:20px;color:blue;font-size:16px;}.footer-a{padding-left:30px;}
</style>
</head>
<body>
<div id='bottom'><div align='center' id=''><span class='footer-a'>我要投诉</span><span class='footer-a'>|</span><span class='footer-a'>联系我们</span><span class='footer-a'>|</span><span class='footer-a'>版权所有</span></div><p align='center'>制作者:***,制作日期:2023年11月15日</p>	
</div></body>
</html>

5.  退出

logout.php 代码如下:

<?php 
session_start();
session_destroy();
echo "<script>location.href='index.php'</script>";
?>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/59338.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

P3-1.【结构化程序设计】第一节——知识要点:算法、顺序结构程序设计、if语句的语法结构及各种用法

讲解视频&#xff1a; P3-1.【结构化程序设计】第一节——知识要点&#xff1a;算法、顺序结构程序设计、if语句的语法结构及各种用法 知识要点&#xff1a;算法、顺序结构程序设计、if语句的语法结构及各种用法 一、算法、顺序结构程序设计任务分析 知识要点&#xff1a;算法…

18、论文阅读:AOD-Net:一体化除雾网络

AOD-Net: All-in-One Dehazing Network 前言介绍相关工作物理模型传统方法深度学习方法 建模与扩展变换后的公式网络设计与高级特征任务相结合 除雾评价数据集和实现 前言 该论文提出了一种基于卷积神经网络&#xff08;CNN&#xff09;的图像去雾模型&#xff0c;称为 All-in…

Golang | Leetcode Golang题解之第538题把二叉搜索树转换为累加树

题目&#xff1a; 题解&#xff1a; func getSuccessor(node *TreeNode) *TreeNode {succ : node.Rightfor succ.Left ! nil && succ.Left ! node {succ succ.Left}return succ }func convertBST(root *TreeNode) *TreeNode {sum : 0node : rootfor node ! nil {if n…

docker+nacos

安装数据库 以docker安装为例&#xff08;实际建议实体&#xff09; 初始化数据库 /******************************************/ /* 数据库全名 nacos_config */ /* 表名称 config_info */ /******************************************/ CREATE TABLE config_i…

react18中redux-promise搭配redux-thunk完美简化异步数据操作

用过redux-thunk的应该知道&#xff0c;操作相对繁琐一点&#xff0c;dispatch本只可以出发plain object。redux-thunk让dispatch可以返回一个函数。而redux-promise在此基础上大大简化了操作。 实现效果 关键逻辑代码 store/index.js import { createStore, applyMiddlewar…

汇编语言与接口技术--算术运算程序设计

一、 实验要求 编程实现两个数&#xff1a;#998877H 和 #778899H 的加法运算。编程实现两个数&#xff1a;#998877H 和 #778899H 的减法运算。 二、 实验设计 1.整体思路 无符号角度&#xff1a; &#xff08;1&#xff09;加法 1.初始化&#xff1a;设置两个数 998877H 和…

(蓝桥杯C/C++)——基础算法(上)

目录 一、二分法 1.二分法简介 二分法简介-解题步骤 2.整数二分-简介 整数二分-模板 3.浮点二分-简介 浮点二分-模板 4.二分答案-简介 二分答案-模板​​​​​​​ 二、位运算 1.位运算简介 2.常见的位运算 按位与AND(&) 按位或OR( | ) 按位异或…

1-petalinux 问题记录-根文件系统分区问题

在MPSOC上使用SD第二分区配置根文件系统的时候&#xff0c;需要选择对应的bootargs&#xff0c;但是板子上有emmc和sd两个区域&#xff0c;至于配置哪一种mmcblk0就出现了问题&#xff0c;从vivado中的BlockDesign和MLK XCZU2CG原理图来看的话&#xff0c;我使用的SD卡应该属于…

CSS中的背景色和前景色

目录 1 对比度的计算1.1 亮度计算1.2 对比度比率 2 在线计算对比度 在我们的样式设计中&#xff0c;通常会有背景色和前景色的概念。前景色我们通常用来设置文本的颜色&#xff0c;而背景色通常是文本的所在容器的颜色。比如如果我们把文本放在普通容器里&#xff0c;那普通容器…

全面解析:区块链技术及其应用

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 全面解析&#xff1a;区块链技术及其应用 全面解析&#xff1a;区块链技术及其应用 全面解析&#xff1a;区块链技术及其应用 区…

[Redis] Redis主从复制模式

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏: &#x1f9ca; Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection与…

初始JavaEE篇——多线程(8):JUC的组件

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;JavaEE 目录 Callable接口 ReentrantLock synchronized 与 ReentrantLock的区别 信号量&#xff08;Semaphore&#xff09; CountDown…

Java实现JWT登录认证

文章目录 什么是JWT?为什么需要令牌?如何实现?添加依赖&#xff1a;JwtUtils.java&#xff08;生成、解析Token的工具类&#xff09;jwt配置&#xff1a;登录业务逻辑&#xff1a;其他关联代码&#xff1a;测试&#xff1a; 什么是JWT? JWT&#xff08;Json Web Token&…

Meta AR 眼镜团队前负责人加入 OpenAI;visionOS 2.2 Beta 引入超宽屏投屏模式丨 RTE 开发者日报

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE&#xff08;Real-Time Engagement&#xff09;领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的数据」、「有思考的 文章 …

如何对LabVIEW软件进行性能评估?

对LabVIEW软件进行性能评估&#xff0c;可以从以下几个方面着手&#xff0c;通过定量与定性分析&#xff0c;全面了解软件在实际应用中的表现。这些评估方法适用于确保LabVIEW程序的运行效率、稳定性和可维护性。 一、响应时间和执行效率 时间戳测量&#xff1a;使用LabVIEW的时…

鸢尾博客项目开源

1.博客介绍 鸢尾博客是一个基于Spring BootVue3 TypeScript ViteJavaFx的客户端和服务器端的博客系统。项目采用前端与后端分离&#xff0c;支持移动端自适应&#xff0c;配有完备的前台和后台管理功能。后端使用Sa-Token进行权限管理,支持动态菜单权限&#xff0c;服务健康…

拾光云影 3.3.0 | 高清秒播电视直播,支持IPV4,几千频道

拾光云影是一款Ipv4通用版电视直播APP&#xff0c;界面熟悉但有所改进&#xff0c;操作布局类似TVbox。新增了功能按钮页&#xff0c;提供更多功能。频道清晰&#xff0c;加载速度快&#xff0c;支持港澳台等特殊频道&#xff0c;大部分频道均可秒播。软件内置了直播接口&#…

【HTML】——VSCode 基本使用入门和常见操作

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 零&#xff1a;HTML开发工具VSCode的使用 1&#xff1a;创建项目 2&#xff1a;创建格式模板&#x…

Redis数据库测试和缓存穿透、雪崩、击穿

Redis数据库测试实验 实验要求 1.新建一张user表&#xff0c;在表内插入10000条数据。 2.①通过jdbc查询这10000条数据&#xff0c;记录查询时间。 ②通过redis查询这10000条数据&#xff0c;记录查询时间。 3.①再次查询这一万条数据&#xff0c;要求根据年龄进行排序&#…

zabbix 7.0 安装(服务器、前端、代理等)

https://www.zabbix.com/download 使用上面的地址&#xff0c;按教程执行命令安装