后台用户管理(管理员登陆后管理会员)

【预备知识】php

1、PHP访问MySQL数据库 html

一、链接到MySQL数据库mysql

 $conn=mysql_connect("localhost","root","") or die ("数据库服务器链接失败");sql

二、选择数据库数据库

mysql_select_db("db_shop",$conn) or die("数据库访问错误"); 数组

三、执行SQL查询语句服务器

mysql_query("set names gb2312");    //设置客户端字符集为gb2312cookie

$SQL="select * from tb_type";session

$result=mysql_query($SQL);       //SQL语句发送到数据库执行并返回结果资源ide

四、逐行获取数据

while($row=mysql_fetch_array($result))    //逐行获取类别表数据

  {

echo $row['typeid'];     //输出类别号

echo $row['typename'];    //输出类别名称

echo "<br />";

  }

五、统计查询结果的记录集数

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);

?>


2、MVC模式

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面 显示分离的方法组织代码

Model(模型)表示应用程序核心(好比数据库记录列表)。

View(视图)显示数据(数据库记录)。

Controller(控制器)处理输入(写入数据库记录)。

3、图

wKioL1VJ6bygdqICAAHCSYMxmJc758.jpg

【任务实施】

1、ZendStdio安装及建立项目

2、Apache创建虚拟目录

3、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);
        }
    }
}

?>

4、管理员登陆与注销实现

一、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;
    }
}

?>

二、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;
        }
    }

三、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();
    }
}

4、实现后台管理页

一、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");
}
?>

二、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();
}

5、实现会员列表

一、自行编写User.class.php

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

}

二、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;
            
        }
     }


三、列表显示会员信息

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>";
     
?>
6、删除会员

一、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']);
        
    }

二、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");
        }

7、修改会员

一、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']);
        
    }

二、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>

三、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");
        }
    }

8、添加用户信息部分(自主完成)