apache服务器:Apache服务器的用户认证

    经常上网读者会遇到这种情况:访问些网站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个变量值来判断是否合法用户Headerbasic表示基本认证类型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”重新启动电脑


Tags:  apache应用服务器 apache服务器安装 apache服务器配置 apache服务器

延伸阅读

最新评论

发表评论