PHP MYSQL簡易互動式網站開發詳解

來源:互聯網
上載者:User
這篇文章主要為大家詳細介紹了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>";?>

以上就是本文的全部內容,希望對大家的學習有所協助。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.