我的code很简单,是这样的
<?php
header("WWW-Authenticate: Basic realm=\"member area\"");
header("http/1.0 410 Unauthorized");
......
?>
然后我运行的时候,会让我输入用户名和密码,但不管我输入什么,3次后就不行了。
其实我是想尝试一下,用$PHP_AUTH_USER显示出我刚才输入的用户名。但在header的时候就停住了,不能在执行下面的code。
我的问题就是这样,希望能够清楚一点。

解决方案 »

  1.   

    <?php
    //---------------------------
    // 使用者认证函式-1 auth1.inc
    // Author: Wilson Peng
    //        Copyright (C) 1999
    //---------------------------
    $error401 = "/home/phpdocs/error/401.php";
    if ($PHP_AUTH_PW=="") {
      Header("WWW-Authenticate: Basic realm=\"超金卡会员\"");
      Header("HTTP/1.0 401 Unauthorized");
      include($error401);
      exit;
    } else {
     
      $db_id = mysql_connect("localhost", "myid", "mypw");
      $result = mysql_db_query("mymember","select password, enable from MemberAuth where username='$PHP_AUTH_USER'");  $row = mysql_fetch_array($result);
      $MemberPasswd = $row[0];
      $MemberEnable = $row[1];
      mysql_close($db_id);
      if ($MemberEnable==0) {
        echo "您的帐号被停用了";
        exit;
      }
      
      if ($PHP_AUTH_PW!=$MemberPasswd) {
        Header("WWW-Authenticate: Basic realm=\"超金卡会员\"");
        Header("HTTP/1.0 401 Unauthorized");
        include($error401);
        exit;
      }
    }
    ?>
    ---------------------
    超级古老的验证程序,现在可能已经不能运行了.
    但其中的思路就是你想要的.
      

  2.   

    不错,可能这就是楼主所要的...
    to:leemars(小菜虎)经常看到你,发言很有针对性...
      

  3.   

    我在IIS上运行出错,你们试过吗?
      

  4.   

    asd,你所用的是apache认证,必须是php以apache内嵌模块运行;重装php吧
      

  5.   

    呵呵.谢谢slayerbb(名字被抢了) :)楼上说的也没错.听说PHP的认证在IIS下不能正常工作.但我没试验过.(我的XP的IIS 90%的时间不能用)
      

  6.   

    呵呵好像是的..
    我在我机子上试过这段程序,有时可以,有时不行...
    我的是win2000 adv server+iis
      

  7.   

    我已经装了Apache,但运行header的时候显示
    Internal Server Error,在log文件里面
    malformed header from script. Bad header=HTTP/1.0 401 Unauthorized: c:/php-4.1.2-win32/php.exe(其他的都正常)
    请问怎么样解决这个问题呢?
      

  8.   

    楼上的,我刚拿这段程序,经过小改动后测试,并无问题呀! 改动后的程序如下:<?php
    //---------------------------
    // 使用者认证函式-1 auth1.inc
    // Author: Wilson Peng
    //        Copyright (C) 1999
    //---------------------------if ($PHP_AUTH_PW=="") {
      Header("WWW-Authenticate: Basic realm=\"超金卡会员\"");
      Header("HTTP/1.0 401 Unauthorized");
      echo "ERROR!";
      exit;
    } else {
     
    $MemberPasswd="test";  if ($PHP_AUTH_PW!=$MemberPasswd) {
        Header("WWW-Authenticate: Basic realm=\"超金卡会员\"");
        Header("HTTP/1.0 401 Unauthorized");
        echo "ERROR!";
        exit;
      }  echo "OK";
    }对了. slayerbb(名字被抢了) 你所谓的有时可以 有时不行 是什么现象?告诉我好吗?
      

  9.   

    对了!在header前面不能有输出的.切记!