Apache服务器的用户认证(1)(2)
来源:asp之家 发布时间:2010-05-24 18:35: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; // 无效登录
}
}
?>
函数Authenticate()的作用是利用函数Header(WWW-authenticate: basic realm="会员区"),向浏览器发送一个认证请求消息,使浏览器弹出一个用户名/密码的对话框。当用户输入用户名和密码后,包含此PHP脚本的URL将自动地被再次调用,将用户名、密码、认证类型分别存放到PHP4的三个特殊变量:$PHP_AUTH_USER、$PHP_AUTH_PW、$PHP_AUTH_TYPE,在PHP程序中可根据这三个变量值来判断是否合法用户。Header()函数中,basic表示基本认证类型,realm的值表示认证区域名称。
函数Header(HTTP/1.0 401 Unauthorized)使浏览器用户在连续多次输入错误的用户名或密码时接收到HTTP 401错误。
函数CheckUser()用来判断浏览器用户发送来的用户名、密码是否与MySQL数据库的相同,若相同则返回1,否则返回0。其中mysql_connect(localhost, oot, mypwd)的数据库用户名root和密码mypwd,应根据自己的MySQL设置而改变。
3.在需要限制访问的每个PHP脚本程序开头增加下列程序段:
<?php
require(auth.inc);
if (CheckUser($PHP_AUTH_USER,$PHP_AUTH_PW)==0) {
authenticate();
} else {
echo "这是合法用户要访问的网页。"; //将此行改为向合法用户输出的网页
}
?>
把需要向合法用户显示的网页内容放到else子句中,取代上述程序段的一行:
echo "这是合法用户要访问的网页。";
这样,当用户访问该PHP脚本程序时,需要输入用户名和密码来确认用户的身份。
三. Windows的Apache用户认证
1.采用文本文件存放用户名和密码时,其方法同前,但需要注意的是表示路径的目录名之间、目录名与文件名之间一律用斜线“/”分开,而不是反斜线“”。
2.采用MySQL数据库存放用户名和密码时,首先按下列方法将PHP 4.0.3作为Apache的模块来运行,然后按上述“采用数据库存储用户名和密码的用户认证”的方法完成。
1)下载Windows版的Apache 1.3.12、PHP 4.0.3、MySQL 3.2.32,将三个软件分别解压、安装到C:apache、C:PHP4、C:mysql目录。
2)C:PHP4SAPI目录有几个常用Web服务器的PHP模块文件,将其中php4apache.dll拷贝到Apache的modules子目录(C:apachemodules)。
3)修改Apache的配置文件C:apacheconfhttpd.conf,增加以下几行:
LoadModule php4_module modules/ php4apache.dll
AddType application/x-httpd-php .php3
AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php
第一行使PHP4以Apache的模块方式运行,这样才能进行用户认证,后三行定义PHP脚本程序的扩展名。
4)在autoexec.bat文件的PATH命令中增加PHP4所在路径“C:PHP4”,重新启动电脑。
猜你喜欢
- 还记得诺基亚的成名广告语吗——“科技以人为本”。您可千万别小看这句话,西方科技之所以如此发达,很大程度上就源自于“以人为本”理念的贯彻。小到
- 1.什么是FTP(文件传输协议)FILE TRANSFERPROTOCOL(FTP)意为文件传输协议,用于管理计算机之间的文件传送。FTP通
- Discuz!是康盛创想(Comsenz)公司推出的一款论坛BBS产品,目前最新版本是Discuz! 7.1。为使站长更方便快捷地管理后台,
- 今天就来和大家讨论一下如何提高网站的粘度,应该注意的哪些问题!欢迎大家补充,拍砖,谢谢! 1、网站设计有特色,有自己的思想,并不是完全模仿别
- InfoWorld举办的签名挽留Windows XP活动得到的支持数已经超过75000人,微软的生命周期表显示Windows XP将在6月底
- 据外电9月19日报道,全球使用最广泛的互联网搜索引擎Google公司推出了象网页功能一样的交互广告,能够让客户以视频和图象方式锁定目标购物者
- 作为Internet上的FTP服务器,系统的安全性是非常重要的,这是建立FTP服务器者所考虑的第一个问题。其安全性主要包括以下几个方面:一、
- WordPress版本更新非常频繁。这个月WordPress 3.2的Beta 1版本已经发布,如果不出意外,下个月我们会迎来3.2正式版。
- 有同学说搞wm是浪费时间,那我来发点有用的东西。一切关于linux和windows,cli和X的辩论请绕行。本系统由以下软件组成:getma
- 几乎还没有在心理上准备好,一下子就成了身价近十亿美元的富翁。李彦宏看着在纳斯达克飙升的股价,没有流泪,但是当他拨通了百度公司第一位员工——百
- SEO发展到今天,可以说已经有非常多的SEOER涌现,也有越来越多的“准SEOER”正在学习或打算学习SEO技术,那么,是什么导致SEO越来
- 本来只想算算花了多少钱,谁知写得头晕,写太多了。03年工作后开始接触网络,说来惭愧,因为俺是学医的,所以只顾埋头苦读,不闻窗外事,所以大学期
- foreach($kws as $k) { $k = trim($k); if($k!=”") { if($i > $max
- 1、SEO中英文解释SEO英文解释:SEO是Search Engine Optimization的缩写,用英文描述是to use some
- 有人问关键词在整个网站的布局问题。以前也写过帖子介绍过多个关键词的优化问题,今天再补充几点。简单说,多个关键词在网站中需要合理布局,最难的安
- 问题一:我们的营销部门在为网站的内容写作上投入了大量资源,但是好象我们在搜索引擎中的排名并不高,而我们竞争对手的排名却很高。我们需要全部重写
- 影响版本:BBSGood 5.0/5.0.2漏洞描述:BBSGOOD是国内首创使用缓存技术的论坛,BBSGOOD的帖子和列表首页是可以生成静
- 10月15日消息,阿里学院今日宣布,为帮助中小企业解决人才缺口问题,近期将在全国范围内打造电子商务人才产业链,完成人才培养到人才输送。据阿里
- 一、操作系统配置 1.安装操作系统(NTFS分区)后,装杀毒软件,我选用的是卡巴。2.安装系统补丁。扫描漏洞全面杀毒 3.删除Windows
- 应该是”10种图片防盗的方法“,而不是”10种图片防盗链的方法“,不过看搜索防盗链的人要多一点,所以就用这个关键词了。图片防盗: 是不想自己