Dieser Artikel stellt hauptsächlich die einfache interaktive PHP-Site-Entwicklung im Detail vor, die einen gewissen Referenzwert hat. Interessierte Freunde können darauf verweisen
Zweck: Verwendung von PHP und MYSQL zur Simulation der Berechtigungsverwaltung Implementierung des Systems
Der allgemeine Benutzer kann nur andere Benutzerinformationen anzeigen und keine Vorgänge ändern, hinzufügen und löschen. Der Root-Benutzer kann die oben genannten drei Vorgänge ausführen.
Implementierungsideen
1. Erstellen Sie zwei Datentabellen in der MySQL-Datenbank. In einer Datentabelle werden Benutzernamen und Passwörter zur Anmeldeüberprüfung gespeichert, in der anderen werden grundlegende Informationen wie Benutzerberechtigungen gespeichert.
2. Überprüfen Sie beim Absenden des Formulars zunächst, ob der Benutzer in der Datenbank vorhanden ist. Wenn er nicht vorhanden ist, wird das Passwort überprüft Wenn das Passwort korrekt ist, werden bei der Anmeldung alle in der Datenbank gespeicherten Benutzerinformationen und der aktuelle Login-Benutzername angezeigt.
3. Wenn der Benutzer Vorgänge zum Hinzufügen oder Löschen ausführt, stellen Sie zunächst fest, ob die Berechtigungen ausreichend sind, schließen Sie den entsprechenden Vorgang ab und ändern Sie den Datenbankinhalt
Spezifische Implementierung
1. Anmeldeseite<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>
//登陆处理 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>
// 获取登陆名 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); }
<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"); }
// 修改数据函数 /* 点击修改超链接,跳转到修改页面 表单中,名字项指定要修改记录 权限和职务项为可修改内容 */ 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); } } }
// 判断修改用户名是否存在和该用户是否具有权限 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; } }
Aufzeichnung gängiger Techniken
1. Verwenden Sie die Sitzung, um die Methode zur Verwendung derselben Variablen in mehreren PHP-Dateien zu implementieren. Im Text, der die Variable definiert, öffnen Sie die Sitzung und speichern Sie den Wert in der Sitzungusersession_unset(); session_start(); $_SESSION['变量名'] = "值";
session_start(); $NAME = $_SESSION['变量名'];
// 连接数据库 $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. Erinnerung vor dem Absenden des Formulars