PHP MYSQL簡易交互式站點開發(fā)
目的:使用PHP和MYSQL模擬權限管理系統(tǒng)的實現
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函數動態(tài)提醒
echo "<script type='text/javascript'>dis_alert(\"用戶名\",1);</script>";// 密碼輸入為空
if($_POST['password'] == '')
// 調用javascript函數動態(tài)提醒
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函數
<?php echo "<script type='text/javascript'>javascript函數;</script>"; ?>
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
CodeIgniter輔助之第三方類庫third_party用法分析
這篇文章主要介紹了CodeIgniter輔助之第三方類庫third_party用法,以CI集成Twig模版為例分析了CodeIgniter集成第三方類庫的實現步驟與相關技巧,需要的朋友可以參考下2016-01-01

