後臺用戶管理(管理員登錄後管理會員)

【預備知識】

一、PHP訪問MySQL數據庫 

1、連接到MySQL數據庫

 $conn=mysql_connect("localhost","root","") or die ("數據庫服務器連接失敗");

2、選擇數據庫

mysql_select_db("db_shop",$conn) or die("數據庫訪問錯誤"); 

3、執行SQL查詢語句

mysql_query("set names gb2312");    //設置客戶端字符集爲gb2312

$SQL="select * from tb_type";

$result=mysql_query($SQL);       //SQL語句發送到數據庫執行並返回結果資源

4、逐行獲取數據

while($row=mysql_fetch_array($result))    //逐行獲取類別表數據

  {

echo $row['typeid'];     //輸出類別號

echo $row['typename'];    //輸出類別名稱

echo "<br />";

  }

5、統計查詢結果的記錄集數

echo $num=mysql_num_rows($result);    //統計類別的數量

【例1】查詢商品類別

<?php

  $conn=mysql_connect("localhost","root","") or die ("數據庫服務器連接失敗");

  mysql_select_db("db_shopping",$conn) or die("數據庫訪問錯誤"); 

  mysql_query("set names gb2312");    //設置客戶端字符集爲gb2312

  $SQL="select * from tb_type";

  $result=mysql_query($SQL);      //SQL語句發送到數據庫執行並返回結果資源

  echo $num=mysql_num_rows($result);    //統計類別的數量

  echo "<br />";

  while($row=mysql_fetch_array($result))    //逐行獲取類別表數據

  {

echo $row['typeid'];     //輸出類別號

echo $row['typename'];    //輸出類別名稱

echo "<br />";

}

mysql_free_result($result);

mysql_close($conn)

?>

 

【例2】刪除某個商品類別

<?php

  $conn=mysql_connect("localhost","root","") or die ("數據庫服務器連接失敗");

  mysql_select_db("db_shop",$conn) or die("數據庫訪問錯誤"); 

  mysql_query("set names gb2312");    //設置客戶端字符集爲gb2312

  $SQL="delete from tb_type where id=3 ";

mysql_query($sql,$conn) or die(mysql_error());

if(mysql_affected_rows($conn)>0){

echo "刪除成功";

}else{

echo "無符合條件記錄";

}

mysql_close($conn);

?>


二、MVC模式

MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計典範,用一種業務邏輯、數據、界面 顯示分離的方法組織代碼

Model(模型)表示應用程序核心(比如數據庫記錄列表)。

View(視圖)顯示數據(數據庫記錄)。

Controller(控制器)處理輸入(寫入數據庫記錄)。

三、圖

wKioL1VJ6bygdqICAAHCSYMxmJc758.jpg

【任務實施】

一、ZendStdio安裝及創建項目

二、Apache建立虛擬目錄

三、SQLHelper.class.php封裝數據庫相關操作

<?php
class SQLHelper{
    private $conn;
    private $host="localhost";
    private $user="root";
    private $pwd="";
    private $db="db_shopping";                                                                                                                                                                                                                                                                                                                     
    public function __construct(){

        $this->conn=mysql_connect($this->host,$this->user,$this->pwd) or die(mysql_connect_error);
        mysql_select_db($this->db);
        
    }
    public function execute_dql($sql){
        
        $res=mysql_query($sql) or die(mysql_error());
        return $res;
        
    }
    public function execute_dql2($sql){
        //查詢,返回數組值
        $arr=array();
        $result=mysql_query($sql,$this->conn) or die(mysql_error());
        while($row=mysql_fetch_assoc($result)){
            $arr[]=$row;
        }
        mysql_free_result($result);
        return $arr;
    
    }
   
    public function executed_dml($sql){
        $b=mysql_query($sql,$this->conn) or die(mysql_error());
        if(!$b){
            return 0;   //不可操作
        }else{
            if(mysql_affected_rows($this->conn)>0){
                return 1;  //操作 成功
            }else{
                return 2;   //可以操作,但無符合條件記錄
            }
        }
    }
    public function  close_connect(){
        if(!empty($this->conn)){
            mysql_close($this->conn);
        }
    }
}

?>

四、管理員登錄與註銷實現

1、Admin.class.php

<?php
class Admin {
    private $id;
    private $name;
    private $password;
    public function getId() {
        return $this->id;
    }
    public function getName() {
        return $this->name;
    }
    public function getPassword() {
        return $this->password;
    }

    public function setId($id) {
        $this->id = $id;
    }
    public function setName($name) {
        $this->name = $name;
    }
    public function setPassword($password) {
        $this->password = $password;
    }
}

?>

2、AdminService.class.php實現管理員身份驗證

<?php
    require_once 'SQLHelper.class.php';
    require_once 'Admin.class.php';
    class AdminService {
        public function checkAdmin($id,$password){
            $sql="select password,name from admin where id=$id";
            $name="";
            $sqlHelper=new SQLHelper();
            $result=$sqlHelper->execute_dql($sql);
            if($row=mysql_fetch_assoc($result)){
                if($password==$row['password']){
                  
                $name=$row['name'];    
                }
            }
            mysql_free_result($result);
            $sqlHelper->close_connect();
            return $name;
        }
    }

3、loginProcess獲取用戶信息,通過service訪問數據庫,驗證是否形式合法新用戶,返回用戶

<?php
require_once 'SQLHelper.class.php';
require_once 'AdminService.class.php';
$action=$_GET['action'];
if("login"==$action){
    $id=$_POST['id'];
    $password=$_POST['password'];
    $password=md5($password);
    $service=new AdminService();
    $name=$service->checkAdmin($id, $password);
    echo $name;
    
    if($name!=""){
        header("Location:empManage.php?name=$name");
        session_start();//啓用session回話
        $_SESSION['name']=$name;
    
        header("Location:Manage.php");
        exit();
    }
    else {
        header("Location:login.php?errno=1");
        exit();
    }
}

四、實現後臺管理頁

1、Manager.php

<?php
header("content-type:text/html;charset=utf-8");
session_start();
if(isset($_SESSION['name'])){
    echo "歡迎".$_SESSION['name']."登陸";
    echo "<br/><a href='login.php'>重新登陸";
    
    echo "<h1>用戶管理</h1>";
    echo "<a href='userList.php'>顯示用戶列表</a><br/>";
    echo "<a href='userAdd.php'>添加用戶</a><br/>";
    echo "<a href='loginProcess.php?action=exit'>註銷</a><br/>";
}else{
    header("Location:login.php");
}
?>

2、loginProcess註銷管理員返回登錄界面

if ("exit"==$action){
    session_start();
    $_SESSION=array();
    if(isset($_COOKIE[session_name()])){
        setcookie(session_name(),'',time()-3600);
    }
    session_destroy();
    header("Location:login.php");
    exit();
}

五、實現會員列表

1、自行編寫User.class.php

class User {
    private $id;
    private $name;
    private $password;
    private $email;
    private $telephone;

}

2、UserService.class.php

<?php
     require_once 'SQLHelper.class.php';
     require_once 'User.class.php';
 
    class UserService{
        public function getById($id){
            $sql="select * from users where id=$id";
            $sqlHelper=new SQLHelper();
            $arr=$sqlHelper->execute_dql2($sql);
            $user=new User();
            $user->setId($arr[0]['id']);
            $user->setName($arr[0]['name']);
            $user->setPassword($arr[0]['password']);
            $user->setEmail($arr[0]['email']);
            $user->setTelephone($arr[0]['telephone']);
            return $user;
            
            
        }
        public function deleteUser($id)
        {
            $sql="delete from users where id=$id";
            $sqlHelper=new SQLHelper();
            $b=$sqlHelper->executed_dml($sql);
            return $b;
            
        
        }
        public function addUser($name,$password,$email,$telephone){
            
            $sql="insert into users(name,password,email,telephone)values('$name','$password','$email','$telephone')";
            $sqlHelper=new SQLHelper();
            $b=$sqlHelper->executed_dml($sql);
            
            return $b;
        }
        public function updateUser($id,$name,$password,$email,$telephone){
            $sql="update users set name='$name',password='$password',email='$email',telephone='$telephone' where id=$id";
            $sqlHelper=new SQLHelper();
            $b=$sqlHelper->executed_dml($sql);
            return $b;
            
        }
     }


3、列表顯示會員信息

userList.php

<?php
header("content-type:text/html;charset=utf-8");
require_once 'SQLHelper.class.php';
require_once 'UserService.class.php';

    //方式1
    /* $sql1="select id,name from users";
    // $result=$sqlHelper->execute_dql($sql);
    // while($row=mysql_fetch_assoc($result)){
    //     echo"<tr><td>{$row['id']}</td><td>{$row['name']}</td><td>刪除</td><td>修改</td></tr>";
    // }
    // mysql_free_result($result);
    // $sqlHelper->close_connect();
    
    //MVC方式

    $sql1="select id,name from users ";
      $sqlHelper=new SQLHelper();
    $result=$sqlHelper->excute_dql2($sql1);//二維數組
    $sqlHelper->close_connect();
      echo"會員信息表<br/>";
    echo"<table border=1 width=600px>

        <tr>

        <th>id</th><th>name</th><th>刪除</th><th>修改</th></tr>";   

foreach ($result as $row){
        
        echo"<tr><td>{$row['id']}</td><td>{$row['name']}</td><td>刪除</td><td>修改</td></tr>";
        //print_r($row['id']);
        
    }
    echo"</table>";
     
?>
六、刪除會員

1、userList.php修改部分

foreach ($result as $row){
        
        echo"<tr><td>{$row['id']}</td><td> {$row['name']}</td><td><a href='userProcess.php?action=delete&id=$id'>刪除</a></td><td>修改< /td></tr>";
        //print_r($row['id']);
        
    }

2、userProcess.php實現刪除部分內容

if("delete"==$_GET['action']){
        $id=$_GET['id'];
        $userService=new userService();
        $b=$userService->deleteUser($id);
        if($b==1)
        {
            header("Location:ok.php");
        }else{
            header("Location:error.php");
        }

七、修改會員

1、userList.php修改部分

foreach ($result as $row){
        
        echo"<tr><td>{$row['id']}</td><td> {$row['name']}</td><td><a href='userProcess.php?action=delete&id=$id'>刪除</a></td& gt;<td>修改< /td></tr>";
        //print_r($row['id']);
        
    }

2、updateUserUI界面部分

<?php
require_once 'User.class.php';
require_once 'UserService.class.php';
header("Content-type:text/html;charset=utf-8");
if(!empty($_GET['id'])){
    $id=$_GET['id'];
    $UserService=new UserService();
    $User=$UserService->getById($id);

}

?>
<body>
<p>修改用戶信息</p>
<form action="UserProcess.php" method="post">
<table>
<tr>
    <td>用戶id</td>
    <td><input type="text" name="id" readonly="readonly" value="<?php echo $User->getId();?>"/></td>
</tr>
<tr>
        <td>用戶名</td>
        <td><input type="text" name="name" value="<?php echo $User->getName();?>"/></td>
</tr>
<tr><td>密碼</td><td><input type="text" name="password" value=""/></td></tr>
<tr>
<td>郵箱</td>
<td><input type="text" name="email" value="<?php echo $User->getEmail();?>"/></td>
</tr>
<tr>
<td>電話</td>
<td><input type="text" name="telephone" value="<?php echo $User->getTelephone();?>"/></td>
</tr>
<tr>
    <td></td>
    <td><input type="submit"  value="更改"><input type="reset"  value="重寫"/></td>
</tr>

</table>
<input type="hidden"  value="update" name="action"/>
</form>
</body>

3、userProcess實現修改部分

if("update"==$_POST['action']){
        $id=$_POST['id'];
        $name=$_POST['name'];
        $password=$_POST['password'];
        $email=$_POST['email'];
        $telephone=$_POST['telephone'];
        //echo $email;
        $userService=new userService();
        $b=$userService->updateUser($id, $name, $password, $email, $telephone);
        if($b==1)
        {
            header("Location:ok.php");
        }else{
            header("Location:error.php");
        }
    }

八、添加用戶信息部分(自主完成)




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章