看看php自己带的手册,有一个身份认证的例子,但是这种认证方法不安全的

解决方案 »

  1.   

    if(!$PHP_AUTH_USER) {
    Header("WWW-authenticate: basic realm=\"你的网站\"");
    Header("HTTP/1.0 401 Unauthorized");
      exit;
    } else {
    mysql_connect("localhost","root","*****");
    $select_str="select username,password from users where username='$PHP_AUTH_USER' having password=password('$PHP_AUTH_PW') ";
    $rs=mysql("intcm",$select_str);
    $num=mysql_num_rows($rs); if ($num<=0){
    Header("WWW-authenticate: basic realm=\"你的网站\"");
    Header("HTTP/1.0 401 Unauthorized");
    exit;
    }
    //modified by amikoo 01-1-12
    }
      

  2.   

    首先我个人不支持你使用header的认证功能因为在PHP中目前只有以APACHE模块方式的才可以,局限性很大。除非用WEB服务器的认证功能,PHP的认证功能还是少用为好。用Session和Cookie效果会更好。
    在PHP中,客户端用户输入的信息传递到服务端之后自动保存在$PHP_AUTH_USER,$PHP_AUTH_PW,以及$PHP_AUTH_TYPE这三个全局变量中,利用它们我可以得到客户端的输入进行操作。
    例:
    <?
    if(!isset($PHP_AUTH_USER))    //如果没有设置变量$PHP_AUTH_USER,就显示身份验证窗口要求用户进行验证。
    {
        header('WWW-Authenticate:Basic realm="欢迎使用"');
        header('HTTP/1.0 401 Unauthorized');
        echo "对不起!用户名和密码有误,不得进入!";
        exit();    //退出
    }
    else
    {
        echo "<P>你的名字为:$PHP_AUTH_USER";
        echo "<P>你的密码为:$PHP_AUTH_PW";
    }
      

  3.   

    检查返回的
    $PHP_AUTH_USER
    $PHP_AUTH_PW
    验证一下子就可以了.