At 21:12 01.03.2003, Philip J. Newman said:
--------------------[snip]--------------------
>Is there a way that i can restrict access to an entire directory using
>PHP/MYSQL so only valid users in the Database can have access to a resource?
--------------------[snip]-------------------- 

1) Put that folder outside the document root of your webserver so they
cannot be retrieved by accessing their URL directly
2) After authenticating, server the files using readfile() or similar.

You could even use the ErrorDocument directive in Apache to run this.
Consider this deirectory layout:

   ~newmanpj/
      + -- htdocs                <== the web root (home of hidden_files.php)
      |      + -- hidden_files   <== an empty directory, only .htaccess
available
      |
      + -- hidden_files          <== the directory holding your files

The .htaccess file within the hidden directory contains
    ErrorDocument 404 /hidden_files.php

Now when a user requests
http://www.newmanpj.com/hidden_files/somestuff.html, the hidden_files.php
will be triggered by apache, having $_SERVER['REDIRECT_URL'] set to the
requested URL.

hidden_files.php does the following:
1) Check if the request is for a hidden file:
   No => serve a general 404 Error message
   Yes => continue
2) Check authentication:
   Not authenticated => goto login (or return 401 Authenticate)
   Yes - readfile(requested_file)

Hope this helps,


-- 
   >O     Ernest E. Vogelsinger
   (\)    ICQ #13394035
    ^     http://www.vogelsinger.at/



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to