时间:2021-05-26
目的:使用PHP和MYSQL模拟权限管理系统的实现
general用户只能查看其他用户信息,不能进行修改,添加,和删除操作,root用户可以完成以上三种操作。
实现思路
1.在MySQL数据库中建立两张数据表。一张数据表保存用户名和密码,用于登陆验证,另一张保存用户权限等基本信息。
2.提交表单登陆时,先在数据库中查找该用户存不存在,若不存在,报错,存在,则验证密码,密码错误则报错,若密码正确,登陆显示所有存储在数据库中的用户信息和当前登陆用户名。
3.在用户进行添加,删除操作时,先判断权限是否足够,有权限则完成相应操作,修改数据库内容,否则提示没有权限
具体实现
1.登陆页面
<center> <form method="post" action="<?php echo $_SERVER['SCRIPT_NAME'] ?>"> 用户名: <input type="text" name="user_name"> 密码: <input type="text" name="password"> <input type="Submit" name="submit" value="登陆"> </form></center>效果如下:
2.连接数据库对登陆名和密码进行验证
//登陆处理 if (isset($_POST['submit'])) { // 用户名输入为空 if($_POST['user_name'] == '') // 调用javascript函数动态提醒 echo "<script type='text/javascript'>dis_alert(\"用户名\",1);</script>";// 密码输入为空 if($_POST['password'] == '') // 调用javascript函数动态提醒 echo "<script type='text/javascript'>dis_alert(\"密码\",1);</script>"; // 用户名与密码均不为空 $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,0,'user_name'); $password = mysql_result($result,0,'password'); if(strcmp($password,$_POST['password']) != 0) { echo "密码错误"; //密码错误,报错 $password = $_POST['password']; echo "<script type='text/javascript'>dis_alert('密码错误',3);</script>"; } // 密码正确 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 "<script type='text/javascript'>dis_alert(\"$user_name\",2);</script>"; } mysql_close($db); }//登陆处理结束输入错误提醒函数
<script type="text/javascript">// 登陆错误提醒function dis_alert(var1, var2){ // 用户名和密码不能为空提醒 if(var2 == 1) { alert(var1 + " 不能为空,请重新输入"); history.back(-1); } // 用户名不存在错误提醒 if(var2 == 2) { alert("该用户名 " + var1 + " 不存在,请重新输入"); history.back(-1); } // 密码错误提醒 if(var2 == 3) { alert("密码错误,请重新输入"); history.back(-1); }}</script>错误提醒效果图:
3.成功登陆之后显示数据库中所有用户信息和当前登陆用户名
// 获取登陆名session_start();$NAME = $_SESSION['user_name'];// 连接数据库,获取数据并显示function display(){ global $NAME; $db = mysql_connect("localhost", "root", "123456"); mysql_select_db("linyimin",$db); $sql = "select * from admin_info"; $result = mysql_query($sql); // 显示信息表 echo "<h3 align=right color=#FFFFFF> 当前用户:$NAME</h6>"; echo "<table border = 0 align = center width = 1000></br>"; // 添加超链接 echo "<tr align = center><th> <a href =\"display.php?add=yes\">ADD</a></th><br>"; // 修改添加超连接 echo "<th> <a href =\"display.php?update=yes\">UPDATE</a></th><br>"; // 删除超链接 echo "<th> <a href =\"display.php?delete=yes\">DELETE</a></th></tr><br>"; echo "</table>"; echo "<table border = 2 align = center width = 1000></br>"; // 表头 echo "<tr><th colspan=\"3\">管理员权限表</th></tr><br>"; echo "<tr align = center><td>姓名</td><td>权限</td><td>职务</td></tr><br>"; while($row = mysql_fetch_row($result)) { // 显示管理员信息并通过超链接调用处理函数 echo "<tr align = center><td>$row[0]</td>"; echo "<td>$row[1]</td>"; echo "<td>$row[2]</td></tr>"; } echo "</table>"; mysql_close($db);}显示效果如下:
4.修改,删除,添加操作的实现
修改,添加页面
<center> <form method="post" action="<?php echo $_SERVER['URL'] ?>"> 姓名: <input type="text" name="user_name"> 权限: <input type="text" name="pemission"> 职务: <input type="text" name="position"> <input type="Submit" name="update" value="提交"> </form></center>效果如下:
删除页面
<center> <form method="post" action="<?php echo $_SERVER['URL'] ?>" onsubmit="return confirm('请确认删除');"> 姓名: <input type="text" name="user_name"> <input type="submit" name="update" value="删除"></center>效果图如下:
实现
// 调用修改函数if ($_GET[update]) { modify("update");}// 调用添加函数elseif($_GET[add]){ modify("add");}elseif($_GET[delete]){ modify("delete");}modify()函数的实现
// 修改数据函数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()函数的实现
// 判断修改用户名是否存在和该用户是否具有权限function judge($operation){ global $NAME; // 修改用户名 $user_name = $_POST['user_name']; // 连接数据库,获取数据 $db = mysql_connect("localhost", "root", "123456"); mysql_select_db("linyimin",$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 "<script type='text/javascript'>dis_alert(\"$user_name\",2);</script>"; return 0; } else { // 判断有没有权限(只有root权限可以修改) $sql = "select * from admin_info where user_name = \"$NAME\""; $result = mysql_query($sql); $pemission = mysql_result($result,0,'pemission'); // 没有root权限,报错 if(strcmp($pemission,"root") != 0) { $user_name = $_POST['user_name']; echo "<script type='text/javascript'>dis_alert(\"$user_name\",1);</script>"; return 0; } else return 1; } }常用技巧记录
1.利用session实现多个php文件使用同一个变量的方法
在定义该变量的文本中打开session,并把值存入session
usersession_unset();session_start();$_SESSION['变量名'] = "值";在使用该变量的文本中打开session并取出该变量
session_start();$NAME = $_SESSION['变量名'];2.PHP连接MYSQL数据库,并对数据库进行查找,添加,删除操作
连接数据库
// 连接数据库$db = mysql_connect("url", "用户名", "密码");// 选择数据库mysql_select_db("数据库名称",$db);查找
$sql = "select * from admin_info where 字段名 = \"查找值\"";$result = mysql_query($sql);// 对查找返回结果进行操作// 获取查找返回记录数条数$num = mysql_num_rows($result);// 获取查找结果第一条记录的user_name字段值$user_name = mysql_result($result,0,'user_name');// 逐条取出查询记录while($row = mysql_fetch_row($result)){ 相关操作;}插入
$sql = "insert into 数据表 (字段1, 字段2, 字段3) values ('值1','值2','值3')";mysql_query($sql);删除
$sql = "delete from 数据表 where 字段名 = \"查找值\"";mysql_query($sql);// 关闭数据库mysql_close($db);3.表格提交前提醒
<form method="post" action="url" onsubmit="return confirm('请确认删除');">
4.在php中调用javascript函数
<?phpecho "<script type='text/javascript'>javascript函数;</script>";?>以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
方式一交互式编程交互式编程不需要创建脚本文件,是通过Python解释器的交互模式进来编写代码。linux上你只需要在命令行中输入Python命令即可启动交互式编
淘宝平台上有很多营销工具,供大家使用。最近,蚂蚁的母亲开发了新的交互式营销工具。也就是说,淘宝的超交互式城市,让我们来看看那个口在哪里bp登录入口:https:
Node.jsREPL(交互式解释器)实例详解Node.jsREPL(ReadEvalPrintLoop:交互式解释器)表示一个电脑的环境,类似Window系统
对于客户的体验来说,一种交互式的网站的建立,能够让用户的体验获得凸显,随着互联网信息技术的不断的推进,越来越丰富的交互式营销,有效的提升了客户的体验。交互式本身
交互式网站是近几年新兴起的一种建站形式,相比传统网站而言更符合企业的使用。在设计方面,交互式网站也与传统网站不同,一般来说交互式网站设计需要根据以下特点:第一、