保护目录中的1000多个html文件,而无需编辑所有文件

时间:2013-10-07 17:09:59

标签: php html mysql web passwords

我正在尝试创建我的网站,以便您必须登录才能查看某些文件。我登录并运行mySQL数据库,一切正常,除了我不想手动编辑所有我的1000+ html文件来检查用户是否登录。我尝试过使用htaccess,但是popup是如此丑陋我无法忍受。

现在,问题是,我可以密码保护我的网站上的一堆文件而无需手动修改所有文件,或者我可以使“htaccess登录表单”看起来不错。 感谢。

1 个答案:

答案 0 :(得分:2)

您可以将所有HTML文件放在webroot之外的目录中,然后通过URL重写或传递给单个PHP脚本的基本查询字符串变量来引用它们。

例如:

<?php
// Get the file from ?whichfile=(...)
$whichfile = $_GET['whichfile'];

// Put your logic here to verify that the user is logged in / has a valid session ID, etc.
// You should also put some checks on the value that is passed through "whichfile"
// to prevent users from accessing things they shouldn't.

// Edit: example to prevent this:
// $whichfile = "../../../../etc/passwd";

$fname = pathinfo($whichfile, PATHINFO_FILENAME);
$ext = pathinfo($whichfile, PATHINFO_EXTENSION);
$fname .= ($ext ? ".".$ext : "");

if (file_exists("/var/www/folder/out/of/webroot/".$fname)) {
   $blob = file_get_contents("/var/www/folder/out/of/webroot/".$fname);
   header("Content-Type: text/html; charset=utf-8");
   print $blob;
}