这应该是操作系统和web服务器的事情,设置文件的访问权限可以实现

解决方案 »

  1.   

    phpmyadmin 有这个功能,可以查看它的代码
      

  2.   

    按照以下步骤我创建了一个密码文件和一个读码文件,之后还要怎么做呢?有知道的请帮帮忙吧!急啊!
    1:用Apache自带的htpasswd.exe创建了一个密码文件user,该文件在E:\Apache2.2\bin目录下
    2:新建文本文件,输入了以下代码
         authtype basic
        authname"goods"
        authuserfile e:\Apache2.2\htdocs\web
        require user admin
       保存为passwd.htaccess文件,将其放在要保护的文件夹下,也就是e:\Apache2.2\htdocs\web这个目录下面。
    ————————————————
    想问一下,接下来还要怎么做呢?
      

  3.   

    PHP有基于HTTP的直接验证.
    http://bbs.51cto.com/archiver/tid-443407.html
    LZ看下这个资料,直接代码实现.
      

  4.   

    谢谢LS,这个我已经写进去了,我现在的问题好像是在Apache的配置上,程序中我有如下代码:
    /*******************************************
    HTTP验证功能
    *******************************************/
    if (!isset($PHP_AUTH_USER) || (!isset($PHP_AUTH_PW)))
    {

    header("WWW-Authenticate:Basic realm='soho'");
    header('HTTP/1.0 401 Unauthorized');
    echo "<script language='JavaScript'>alert ('验证失败!请重新登陆。');</script>";
    exit;
    }

    else if ((isset($PHP_AUTH_USER)) && (isset($PHP_AUTH_PW)))
    {
    if (($PHP_AUTH_USER != "admin") || ($PHP_AUTH_PW !="admin"))
    {
    header ('WWW-Authenticate: Basic realm="admin"');
    header ('HTTP/1.0 401 Unauthorized');
    echo 'Authorization Required.';
    exit;
    }
    else if (($PHP_AUTH_USER == "admin") && ($PHP_AUTH_PW == "admin"))
    {
    echo "<script language='JavaScript'>alert ('验证成功!');</script>";
    exit;
    }
    }
    麻烦帮忙看看,我觉得这里应该是没有问题的,现在画面上是可以出现那个登陆框的,可就是不管输什么就和没输一样,错三次之后就会弹出“验证失败!请重新登陆。”的提示框。
      

  5.   

    帮你找到一个网站,你上去看看,希望能对你有所帮助!http://man.chinaunix.net/newsoft/ApacheManual/howto/auth.html
      

  6.   

    刚才Google一下,自已对这个又有了些新的认识,我说一下我的想法,望大家给予指正。(先声明一下,这个方法不是直接用代码来做的,好像在PHP文件中什么也不用写就可实现。)
    1:先用Apache自带的htpasswd.exe程序生成一个密码文件newuser(生成的时候是没有扩展名的,我也不知道对不对,后来自已改成newuser.txt了,文件位置在e:\Apache2.2\htdocs\bin下面)
    2:在Apache的配置文件中,找到LoadModule auth_basic_module modules/mod_auth_basic.so该行,并去掉前面的#号(默认是去掉的)
    3:再找
       <Directory "E:/Apache2.2/htdocs/"/>
        Options FollowSymLinks
        AllowOverride None
        Order allow,deny
        allow from all
       </Directory>
    将其改为
       <Directory "E:/Apache2.2/htdocs/"/>
        Options FollowSymLinks
        AllowOverride authconfig
        Order allow,deny
         allow from all
       </Directory>
    4:新建一个文本文件,输入以下代码,并保存为passwd.htaccess文件(这个扩展名头次见,Google来的),不过我看Apache配置文件中这么一段描述:“ # The following lines prevent .htaccess and .htpasswd files from being 
               # viewed by Web clients. 
               #
                 <FilesMatch "^\.ht">
                 Order allow,deny
                 Deny from all
                 </FilesMatch>”。
    所以,我就把这个文件名稍稍改了一下,改成了passwd.ht,以下是该文件中的代码
       authtype basic
       authname"goods"
       authuserfile e:\Apache2.2\htdocs\bin\newuser.txt
       require user admin
    5:把这个文件passwd.ht放在了htdocs下面,这个目录下面有个shop.php的文件,我的目的是在浏览器里输入127.0.0.1/shop.php时,就弹出这个验证框,把以放在了这个目录下面,可还是不行。
    我认为现在的情况是:密码文件有了(newuser.txt),配置中也设定了在访问哪个文件夹时进行密码保护(修改了Apache中的配置文件),用来读取密码文件的向导文件也有了(passwd.ht),可不知道还有什么遗漏的,现在验证框还是出不来。
      

  7.   

    Apache服务器已经内置用户验证机制,大家只要适当的加以设置,便可以控制网站的某些部分要用户验证。
    前期准备,必须已经安装apache,如果还没安装,或者对安装很模糊的话,
    第1步:
    我们在/var/www(apache的主页根目录)下建立一个test目录
    mkdir /var/www/test
    第2步
    然后我们编辑httpd.conf
    添加
    Alias /test"/var/www/test"
    <Directory "/var/www/test">
    Options Indexes MultiViews
    AllowOverride AuthConfig #表示进行身份验证
    Order allow,deny
    Allow from all
    </Directory>
     
    #AllowOverride AuthConfig 表示进行身份验证这是关键的设置
    第3步
    在/var/www/test创建.htaccess文件
    vi /var/www/test/.htaccess
    AuthName "frank share web"
    AuthType Basic
    AuthUserFile /var/www/test/.htpasswd
    require valid-user
    #AuthName 描述,随便写
    #AuthUserFile /var/www/test/.htpasswd
    #require valid-user 或者 require user frank 限制是所有合法用户还是指定用户
    #密码文件推荐使用.htpasswd,因为apache默认系统对“.ht”开头的文件默认不允许外部读取,安全系数会高一点哦。
    第4步
    就是创建apache的验证用户
    htpasswd -c /var/www/test/.htpasswd frank
    #第一次创建用户要用到-c 参数 第2次添加用户,就不用-c参数
    如果你们想修改密码,可以如下
    htpasswd -m .htpasswd frank
    第5步:
    ok,重启apache服务,然后访问 http://你的网站地址/test 如果顺利的话,应该能看到一个用户验证的弹出窗口,只要填入第4步创建的用户名和密码就行
    后话,为了服务器的性能,一般不推荐使用AllowOverride AuthConfig或者AllowOverride ALL,因为这会使服务器会不断的去寻找.htaccess,从而影响服务器的效能,一般我们把一些后台管理界面或者其他特殊目录可能需要加验证这个需求。
     
    ——————————
    参考地址:http://blog.chinaunix.net/u1/40541/showart_315264.html