2010-08-13 77 views
0

我正在开发用PHP/Apache的一个LMS解决方案,它采用SCORM文件和输出课程,用户在格式被任何人而作为课程内容进行http://www.example.com/courses/course1/index.html限制访问静态内容/使用PHP通过htaccess进行身份验证?

本身将是访问的LMS是静态的html我关于身份验证,似乎没有多个选项。

我原本以为在文件夹中创建一些htaccess/htpasswd文件是可以的,但是我看不到在php中验证用户的方式,所以他们在每次他们想查看时都没有显示密码提示课程 - 他们以前会在我的应用程序中进行身份验证。

有谁知道最好的方法来保护静态内容,以便授权(通过我的PHP应用程序)用户可以查看内容的罚款,但其他人都看不到?

回答

1

如果PHP自己处理登录,最简单的选择是通过PHP本身提供内容。

您可以将静态文件中没有映射到URL空间或者是一个目录拒绝所有的请求,然后背后映射的URL目录使用readfile

//request to /download_static.php?file=xxxx.rtf 
if (!has_access()) 
    die("unauthorized"); 

if ($f = filter_input(INPUT_GET, 'file', FILTER_SANITIZE_STRING, 
     FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH)) { 
    if (strpos($f, "/") || strpos($f, "..") || !file_exists("statics/$f")) 
     die("no such file"); 
} else { 
    die("invalid request"); 
} 
header("Content-type: application/rtf"); //or whatever 
//can also sent e-tag, last modified, size... 

readfile("statics/$f"); 

另一种选择,唯一可用的是PHP被安装为Apache模块,将执行身份验证,然后调用virtual

相关问题