1

内容来源于《PHP和MySql Web开发》

简单的访问控制:
首先创建一个简单的登陆界面
图片描述

直接上完整代码

<?php
$name = $_POST['name'];
$password = $_POST['password'];

if ((!isset($name)) || (!isset($password))) {
    //检查用户是否登陆
    ?>
    <h1>请登陆</h1>
    <form method="post" action="admin.php">
        <p>username<input type="text" name="name"></p>
        <p>password<input type="password" name="password"></p>
        <p><input type="submit" name="submit" value="login in"></p>
    </form>
    <?php
} else {
    $mysql = mysqli_connect("localhost","root","0801");
    //连接数据库
    if (!$mysql) {
        echo "无法连接数据库";
        exit;
    }
    $selected = mysqli_select_db($mysql,"auth");
    //选择数据库
    if (!$selected) {
        echo "无法选择数据库";
        exit;
    }
    $query = "select count(*) from authorized_users WHERE 
              name='".$name."'and password =  sha1('".$password."')";
    //用sha1()函数加密。哈希算法返回40个字符的伪随机字符串
    $result = mysqli_query($mysql,$query);
    //查询数据库
    if (!$result) {
        echo "query语句无效";
        exit;
    }
    $row = mysqli_fetch_row($result);
    $count = $row[0];

    if ($count > 0 ) {
        //表示用户名和密码正确
        echo "欢迎登陆";
    } else {
        //表示用户名和密码不正确
        echo "无效登陆";
    }
}
?>

分析:创建完form表单后直接action到自己,然后连接数据库,会利用到数据库的基本操作和sha1()函数。下面给出数据库的代码。

create database auth;
/*创建数据库*/
use auth;
create  table authorized_users (
name varchar(20),
password varchar(40),
primary key (name)
);
/*创建数据表,主键为name*/
insert into authorized-users values (
'username','password'
);
/*插入一条*/
insert into authorized_users values (
'sha1user',sha1('pass')
);
/*此处插入的是利用sha1()函数的密码,可以都测试一下。*/

之后会利用会话控制来管理验证。
PHP中的会话控制


邢军
10 声望1 粉丝

hello world.