动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   服务器 → 阅读文章

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

作者来源:天极网 
阅读 数 536 人次 , 2006-2-15 18:09:00 

二.    采用数据库存储 

目前,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; // 无效登录 

?> 

  
 本文Tagsapache  
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:Apache服务器的用户认证(2)
· 下一篇:
· Linux操作系统故障恢复技巧
· IBM HACMP双机服务器系统的解决方案
·
· 双核技术讨论:英特尔的双核心架构
· Windows2000全面优化详解(1)


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077