首页 > 网站 > Apache > 正文

Apache服务器的用户认证(3)

2024-08-27 18:25:54
字体:
来源:转载
供稿:网友
二.    采用数据库存储 

目前,Apache、PHP4、MySQL三者是Linux下构建Web网站的最佳搭档,这三个软件都是免费软件。将三者结合起来,通过HTTP协议,利用PHP4和MySQL,实现Apache的用户认证功能。 

只有在PHP4以Apache的模块方式来运行的时候才能进行用户认证。为此,在编译Apache时需要加入PHP4模块一起编译。假设PHP4作为Apache的模块,编译、安装Apache到/usr/local/apache目录,编译、安装MySQL到/usr/local/mysql目录。然后进行下面的步骤:  

1.在MySQL中建立一个数据库member,在其中建立一个表users,用来存放合法用户的用户名和密码。 

1)用vi命令在/tmp目录建立一个SQL脚本文件auth.sql,内容为: 

drop database if exists member; 

create database member; 

use member; 

create table users ( 

username char(20) not null, 

password char(20) not null, 

); 

insert into users values("user1",password("1234")); 

insert into users values("user2",password("5678")); 

2)启动MySQL客户程序mysql,执行上述SQL脚本文件auth.sql的命令, 在表users中增加两个用户的记录。 

#mysql -u root -pmypwd</tmp/auth.sql 

2.编写一个PHP脚本头文件auth.inc,程序内容为: 

?php 

function authenticate() { 

Header(WWW-authenticate: basic realm="会员区"); 

Header(HTTP/1.0 401 Unauthorized); 

echo "你必须输入正确的用户名和口令。n"; 

exit; 

function CheckUser($uname, $pwd) { 

if ($uname == "" || $pwd == "") return 0; 

$query = "SELECT username,password FROM users WHERE username=$uname and password=password($pwd)"; 

$db_id = mysql_connect(localhost, oot, mypwd); 

mysql_select_db(member,$db_id); 

$result = mysql_query($query, $db_id); 

$num=mysql_num_rows($result); 

mysql_close($db_id); 

if ($num>0) { 

return 1; // 有效登录 

} else { 

return 0; // 无效登录 

?> 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表