이 기사는 주로 PHP MYSQL 간단한 대화형 사이트 개발을 자세히 소개하며 관심 있는 친구가 참조할 수 있습니다.
목적: PHP 및 MYSQL을 사용하여 권한 관리 시스템 구현을 시뮬레이션합니다
일반 사용자는 다른 보기만 볼 수 있습니다. 사용자 정보이며 작업을 수정, 추가 또는 삭제할 수 없습니다. 루트 사용자는 위의 세 가지 작업을 완료할 수 있습니다.
구현 아이디어
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); }//登陆处理结束입력 오류 알림 function
<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>효과는 다음과 같습니다:
Achieved
// 调用修改函数 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. 세션을 사용하여 여러 PHP 파일에서 동일한 변수를 사용하는 방법을 구현합니다.
변수를 정의하는 텍스트에서 세션을 열고 세션에 값을 저장합니다usersession_unset(); session_start(); $_SESSION['变量名'] = "值";변수를 사용하여 텍스트에서 세션을 열고 변수를 꺼냅니다
session_start(); $NAME = $_SESSION['变量名'];2. PHP는 MYSQL 데이터베이스에 연결하고, 데이터베이스를 검색하고, 삭제 작업을 추가합니다.데이터베이스에 연결
// 连接数据库 $db = mysql_connect("url", "用户名", "密码"); // 选择数据库 mysql_select_db("数据库名称",$db);Find
$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)) { 相关操作; }Insert
$sql = "insert into 数据表 (字段1, 字段2, 字段3) values ('值1','值2','值3')"; mysql_query($sql);Delete
$sql = "delete from 数据表 where 字段名 = \"查找值\""; mysql_query($sql); // 关闭数据库 mysql_close($db);
3. 양식 제출 전 알림
제출 시
위 내용은 PHP MYSQL을 이용한 간단한 대화형 사이트 개발에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!