内容来源于《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中的会话控制
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。