general用户只能查看其他用户信息,不能进行修改,添加,和删除操作,root用户可以完成以上三种操作。
实现思路
1.在MysqL数据库中建立两张数据表。一张数据表保存用户名和密码,用于登陆验证,另一张保存用户权限等基本信息。 2.提交表单登陆时,先在数据库中查找该用户存不存在,若不存在,报错,存在,则验证密码,密码错误则报错,若密码正确,登陆显示所有存储在数据库中的用户信息和当前登陆用户名。 3.在用户进行添加,删除操作时,先判断权限是否足够,有权限则完成相应操作,修改数据库内容,否则提示没有权限
具体实现
1.登陆页面
rush:xhtml;">
效果如下:
2.连接数据库对登陆名和密码进行验证
rush:PHP;">
//登陆处理
if (isset($_POST['submit']))
{
// 用户名输入为空
if($_POST['user_name'] == '')
// 调用javascript函数动态提醒
echo "";// 密码输入为空
if($_POST['password'] == '')
// 调用javascript函数动态提醒
echo "";
// 用户名与密码均不为空
$user_name = $_POST['user_name'];
//链接数据库,从中读出用户名和密码
$db = MysqL_connect("localhost","root","123456");
MysqL_select_db("linyimin",$db);
$result = MysqL_query("select * from login where user_name = '$user_name'");
$num = MysqL_num_rows($result);
//判断用户输入的用户名存在,验证密码
if($num != 0)
{
$user_name = MysqL_result($result,'user_name');
$password = MysqL_result($result,'password');
if(strcmp($password,$_POST['password']) != 0)
{
echo "密码错误";
//密码错误,报错
$password = $_POST['password'];
echo "";
}
// 密码正确
else
{
session_unset();
session_start();
$_SESSION['user_name'] = $_POST[user_name];
header("Location:http://localhost/display.PHP");
exit;
}
}
// 用户输入的用户名不存在,报错
else if($num == 0)
{
// 用户名不存在,报错
$user_name = $_POST['user_name'];
echo "";
}
MysqL_close($db);
}//登陆处理结束
rush:js;">
rush:PHP;">
// 获取登陆名
session_start();
$NAME = $_SESSION['user_name'];
// 连接数据库,获取数据并显示
function display()
{
global $NAME;
$db = MysqL_connect("localhost","123456");
MysqL_select_db("linyimin",$db);
$sql = "select * from admin_info";
$result = MysqL_query($sql);
// 显示信息表
echo "";
// 添加超链接
echo "
";
// 表头
echo "管理员权限表 ";
echo "";
while($row = MysqL_fetch_row($result))
{
// 显示管理员信息并通过超链接调用处理函数
echo " MysqL_close($db);
}
当前用户:$NAME"; echo "
display.PHP?delete=yes\">DELETE |
---|
rush:xhtml;">
效果如下:
rush:xhtml;">
效果图如下:
实现
rush:PHP;">
// 调用修改函数
if ($_GET[update])
{
modify("update");
}
// 调用添加函数
elseif($_GET[add])
{
modify("add");
}
elseif($_GET[delete])
{
modify("delete");
}
modify()函数的实现
rush:PHP;">
// 修改数据函数
/*
点击修改超链接,跳转到修改页面
表单中,名字项指定要修改记录
权限和职务项为可修改内容
*/
function modify($operation)
{
if(isset($_POST['update']))
{
// 有root权限修改,修改
if($operation == "update" && judge("update"))
{
$user_name = $_POST[user_name];
$sql = "UPDATE admin_info SET pemission = '$_POST[pemission]',position ='$_POST[position]' WHERE user_name = '$user_name'";
MysqL_query($sql);
MysqL_close($db);
display();
}
// 添加
elseif(judge("add") && $operation == "add")
{
$user_name = $_POST[user_name];
$sql = "insert into admin_info (user_name,pemission,position) values ('$_POST[user_name]','$_POST[pemission]','$_POST[position]')";
MysqL_query($sql);
MysqL_close($db);
display();
}
// 删除
elseif(judge("delete") && $operation == "delete")
{
$user_name = $_POST[user_name];
// 获取确认情况
$sql = "delete from admin_info where user_name = \"$user_name\"";
MysqL_query($sql);
}
}
}
judge()函数的实现
rush:PHP;">
// 判断修改用户名是否存在和该用户是否具有权限
function judge($operation)
{
global $NAME;
// 修改用户名
$user_name = $_POST['user_name'];
// 连接数据库,获取数据
$db = MysqL_connect("localhost",$db);
// 该用户是否存在
$sql = "select * from admin_info where user_name = \"$user_name\"";
$result = MysqL_query($sql);
$num = MysqL_num_rows($result);
// 输入名称不存在
if ($num == 0 && $operation != "add")
{
$user_name = $_POST['user_name'];
echo "";
return 0;
}
else
{
// 判断有没有权限(只有root权限可以修改)
$sql = "select * from admin_info where user_name = \"$NAME\"";
$result = MysqL_query($sql);
$pemission = MysqL_result($result,'pemission');
// 没有root权限,报错
if(strcmp($pemission,"root") != 0)
{
$user_name = $_POST['user_name'];
echo "";
return 0;
}
else
return 1;
}
}
常用技巧记录
1.利用session实现多个PHP文件使用同一个变量的方法
在定义该变量的文本中打开session,并把值存入session
rush:PHP;">
usersession_unset();
session_start();
$_SESSION['变量名'] = "值";
在使用该变量的文本中打开session并取出该变量
rush:PHP;">
session_start();
$NAME = $_SESSION['变量名'];
2.PHP连接MysqL数据库,并对数据库进行查找,添加,删除操作
连接数据库
查找
rush:PHP;">
$sql = "select * from admin_info where 字段名 = \"查找值\"";
$result = MysqL_query($sql);
// 对查找返回结果进行操作
// 获取查找返回记录数条数
$num = MysqL_num_rows($result);
// 获取查找结果第一条记录的user_name字段值
$user_name = MysqL_result($result,'user_name');
// 逐条取出查询记录
while($row = MysqL_fetch_row($result))
{
相关操作;
}
插入
rush:sql;">
$sql = "delete from 数据表 where 字段名 = \"查找值\"";
MysqL_query($sql);
// 关闭数据库
MysqL_close($db);
3.表格提交前提醒
删除');">
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。
相关推荐
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返回预支付订单号的接口,目前微信支付所有场景均使用这一接口。下面介绍的是其中NATIVE的支付实现流程与PC端实现扫码支付流程
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返回预支付订单号的接口,目前微信支付所有场景均使用这一接口。下面介绍的是其中APP的支付的配置与实现流程
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户信息这个功能的开发流程。 配置 1.首先得在微信公众平台申请一下微信小程序账号并获取到小程序的AppID和AppSecret https://mp.weixin.qq.com/cgi-bin/loginpage?url=%2Fwxamp%2F
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一款开源且免费商用的后台开发框架,它基于ThinkPHP和Bootstrap两大主流技术构建的极速后台开发框架,它有着非常完善且强大的功能和便捷的开发体验,使我逐渐喜欢上了它。
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛,就离不开通讯了,然后我就想到了长连接。这里本人用的是GatewayWorker框架。
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返回预支付订单号的接口,目前微信支付所有场景均使用这一接口。下面介绍的是其中JSAPI的支付实现流程
服务器优化必备:深入了解PHP8底层开发原理
Golang的网络编程:如何快速构建高性能的网络应用?
Golang和其他编程语言的对比:为什么它的开发效率更高?
PHP8底层开发原理揭秘:如何利用新特性创建出色的Web应用
将字符重新排列以形成回文(如果可能)在C++中
掌握PHP8底层开发原理和新特性:创建高效可扩展的应用程序
服务器性能优化必学:掌握PHP8底层开发原理
PHP8新特性和底层开发原理详解:优化应用性能的终极指南
将 C/C++ 代码转换为汇编语言
深入研究PHP8底层开发原理:创建高效可扩展的应用程序
C++程序查找法向量和迹
PHP8底层开发原理实战指南:提升服务器效能
重排数组,使得当 i 为偶数时,arr[i] >= arr[j],当 i 为奇数时,arr[i] <= arr[j],其中 j < i,使用 C++ 语言实现
Golang的垃圾回收:为什么它可以减少开发人员的负担?