這篇文章主要為大家詳細介紹了PHP MYSQL簡易互動式網站開發,具有一定的參考價值,感興趣的小夥伴們可以參考一下
目的:使用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>";?>
以上就是本文的全部內容,希望對大家的學習有所協助。