apache服务器:Apache服务器的用户认证来源: 发布时间:星期日, 2009年1月4日 浏览:14次 评论:0
经常上网读者会遇到这种情况:访问些网站WebSite某些资源时浏览器弹出个对话框要求输入用户名和密码来获取对资源访问这就是用户认证种PHP脚本头文件auth.inc内容为:
<?php function authenticate { Header('WWW-authenticate: basic realm="会员区"'); Header('HTTP/1.0 401 Unauthorized'); echo "你必须输入正确用户名和口令 "; exit; } function CheckUser(, ) { ( "" || "") 0; = "SELECT username,password FROM usersswheresusername='' and password=password('')"; = mysql_connect('localhost', 'root', 'mypwd'); mysql_select_db('member',); = mysql_query(, ); =mysql_num_rows; mysql_close; (>0) { 1; //有效登录 } { 0; //无效登录 } } ?> Authenticate作用是利用Header('WWW-authenticate: basic realm="会员区"')向浏览器发送个认证请求消息使浏览器弹出个用户名/密码对话框当用户输入用户名和密码后包含此PHP脚本URL将自动地被再次将用户名、密码、认证类型分别存放到PHP4 3个特殊变量:、、在PHP中可根据这 3个变量值来判断是否合法用户Header中basic表示基本认证类型realm值表示认证区域名称 Header('HTTP/1.0 401 Unauthorized')使浏览器用户在连续多次输入用户名或密码时接收到HTTP 401 CheckUser用来判断浏览器用户发送来用户名、密码是否和MySQL数据库相同若相同则返回1否则返回0其中mysql_connect('localhost', 'root', 'mypwd')数据库用户名root和密码mypwd应根据自己MySQL设置而改变 3.在需要限制访问每个PHP脚本开头增加下列段: <?php require('auth.inc'); (CheckUser(,)0) { authenticate; } { echo "这是合法用户要访问网页"; //将此行改为向合法用户输出网页 } ?> 把需要向合法用户显示网页内容放到子句中取代上述段行: echo "这是合法用户要访问网页"; 这样当用户访问该PHP脚本时需要输入用户名和密码来确认用户身份 WindowsApache用户认证 1.采用文本文件存放用户名和密码时其思路方法同前但需要注意是表示路径目录名的间、目录名和文件名的间律用斜线“/”分开而不是反斜线“” 2.采用MySQL数据库存放用户名和密码时首先按下列思路方法将PHP 4.0.3作为Apache模块来运行然后按上述“采用数据库存储用户名和密码用户认证”思路方法完成 1)下载Windows版Apache 1.3.12、PHP 4.0.3、MySQL 3.2.32将 3个软件Software分别解压、安装到C:pache、C:PHP4、C:mysql目录 2) C:PHP4SAPI目录有几个常用Web服务器PHP模块文件将其中php4apache.dll拷贝到Apachemodules子目录(C:pachemodules) 3)修改Apache配置文件C:pachenfhttpd.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模块方式运行这样才能进行用户认证后 3行定义PHP脚本扩展名 4)在autoexec.bat文件PATH命令中增加PHP4所在路径“C:PHP4”重新启动电脑 0
相关文章
读者评论发表评论 |
|