我正在尝试创建我的网站,以便您必须登录才能查看某些文件。我登录并运行mySQL数据库,一切正常,除了我不想手动编辑所有我的1000+ html文件来检查用户是否登录。我尝试过使用htaccess,但是popup是如此丑陋我无法忍受。
现在,问题是,我可以密码保护我的网站上的一堆文件而无需手动修改所有文件,或者我可以使“htaccess登录表单”看起来不错。 感谢。
答案 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;
}