PHP MYSQL简易交互式站点开发
2018-09-21 08:56
目的:使用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:用户输入的用户名不存在,报错 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函数
<?php echo <script type=text/javascript>javascript函数;</script>; ?>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。