练习

时间:2021-2-20 作者:admin

阅读以下题目,请在指定空格处作答。

1、创建数据库user_center

CREATE DATABASE user_center;

2、创建表users

建表的语法

create table [if not exist] Table_name(
    字段一  数据类型 [字段属性|约束] [索引] [注释] ,
    字段二  数据类型 [字段属性|约束] [索引] [注释] ,
    .........
    )[表类型][表字符集][注释]

创建users表包含序号、用户帐号、密码、手机号字段。要求id为主键,值为递增。

USE user_center; // 使用数据库user_center
CREATE TABLE `users`
(
   `id` int (11) NOT NULL _________ COMMENT '序号',
   `account` varchar (16) NOT NULL COMMENT '用户帐号,16位字符',
   `password` char (64) NOT NULL COMMENT '密码',
   `telphone` varchar (32) DEFAULT '' COMMENT '手机号',
   __________ (`id`)
) ENGINE= InnoDB DEFAULT CHARSET= utf8;

3、向user_center数据库中users表插入用户信息数据

USE user_center;
insert into users(account, password, telphone) value('admin', 'admin', "16871054787");
insert into users(account, password, telphone) value('admin2', 'admin2', "13871456841");
insert into users(account, password, telphone) value('admin3', 'admin3', "80041224771");
insert into users(account, password, telphone) value('admin4', 'admin4', "15874581652");
insert into users(account, password, telphone) value('admin5', 'admin5', "25417522145");
insert into users(account, password, telphone) value('admin6', 'admin6', "40014125155");
insert into users(account, password, telphone) value('admin7', 'admin7', "15847455514");
insert into users(account, password, telphone) value('admin8', 'admin8', "16854711223");

4、数据操作类库

4.1、创建user.php文件,定义User类

<?php
_________ User {
    static $host = "127.0.0.1";
    static $dbname = "user_center";
    static $username = "root";
    static $password = "123456";
}
?>

4.2、实现静态方法conn,(数据库连接)

static function conn() {
    $db = new mysqli(self::$host, ______, _______, self::$dbname);
    if($db->connect_error) {
        return null;
    }
    return $db;
}

4.3、实现登录方法

public ______ checkLogin($username, $password) {
    $db = null;
    $stmt = null;
    $db = self::conn();
    if($db) {
        $sql = "_____________________"; 
        $stmt = $db->________($sql); // 初始化预处理语句,每个参数必须指定类型,来保证数据的安全性。通过类型的判断可以减少SQL注入漏洞带来的风险。
        $stmt->bind_param("________", $username, $password);
        $stmt->bind_result($id);
        $stmt->execute();
        if($stmt->fetch()) {
            return true;
        }
    }
    return false;
}

课后复习考点:php mysql 预处理语句

www.runoob.com/php/php-mys…

5、实现登录界面

创建login.php文件,点击“登录”按钮,将表单以POST方式提交,处理该请求的文件为check.php

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>登录</title>
</head>
<body>
    <form action="________" method="post">
        <table>
            <tr><th>用户登录</th></tr>
            <tr>
                <td>
                    <label>帐号</label>
                    <input name="account" type="text" value="" />
                </td>
            </tr>
            <tr>
                <td>
                    <label>密码</label>
                    <input name="password" type="password" value="" />
                </td>
            </tr>
            <tr>
                <td><input type="submit" value="登录" /></td>
            </tr>
        </table>
    </form>
</body>
</html>

课堂作业:使用bootstrap优化登录界面,可自由发挥

6、处理登录请求

创建文件check.php,导入User类文件,并创建该类的对象$user

<?php
      include_once "user.php";
      $user= new User();
?>

接收login.php传进来的数据account、password

      $account = $_POST["account"];
      $password = $_POST["password"];

调用user.php中checkLogin()方法,对用户账号和密码进行验证。当登录成功时,使用Session保存用户账号,并跳转到用户管理主页index.php,当登录失败时跳转到登录页面login.php。

if ($user->_______($account,$password)) {
    session_start();
    $_SESSION["user"] = $account;
    ________("location:index.php");
 } else {
    header("location:login.php");
 }

7、用户管理主页

创建index.php文件

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>用户管理主页</title>
</head>
<body>
</body>
</html>

将Session中保存用户账号显示到页面头部

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>用户管理主页</title>
</head>
<body>
    <header>
      <div>
        <?php
          session_start();
          if (isset(____________)) {
              echo "欢迎 ". _____________;
          } else {
              echo "<a href='login.php'>未登录</a>";
          }
        ?> 
      </div>
    </header>
</body>
</html>

导入User类文件,并创建该类的对象$user,调用user.php中queryAll()方法,查询全部用户信息。将查询返回用户信息,通过for循环,以表格形式进行显示(显示于

下面)

<article>
      <?php
        $user= new User();
        $users = $user->__________;
      ?>
    <table>
          <tr>
              <th>帐号</th>
              <th>密码</th>
              <th>手机号</th>
          </tr>
          <?php
              ____________________:
          ?>
          <tr>
              <td><?php echo $u["account"];?></td>
              <td><?php echo $u["password"];?></td>
              <td><_________________________></td>
          </tr>
      <?php 
              _______________;
          ?>
        </table>
</article>

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。