계정이있는 파일을 다운로드 할 수있는 시스템에서 작업하고 있습니다. 이제 모든 사람과 모든 사람이 다운로드 할 수 없게하는 데 문제가 있습니다. 어떤 힌트 또는 옵션이든 표시됩니다.PHP 계좌를 가지고있는 사람을 제외하고 모두 사용 안 함
global $AllowDownload = false;
function Connect()
{
$Connect = mysqli_connect("127.0.0.1", "root", "12345", "film");
if (mysqli_connect_errno())
echo mysqli_connect_error();
return $Connect;
}
function IsValid($Username, $Password)
{
$IsValid = false;
$Query = mysqli_query(Connect(), "SELECT COUNT(*) FROM `account` WHERE `username` = '$Username' AND `password` = '$Password'");
$Check = mysqli_fetch_array($Query);
if ($Check[0])
$IsValid = true;
return $IsValid;
}
if (!isset($_SERVER['PHP_AUTH_USER']))
{
header('WWW-Authenticate: Basic');
header('HTTP/1.0 401 Unauthorized');
exit();
}
else
{
$Username = mysqli_real_escape_string(Connect(), $_SERVER['PHP_AUTH_USER']);
$Password = mysqli_real_escape_string(Connect(), $_SERVER['PHP_AUTH_PW']);
if (IsValid($Username, $Password))
{
$AllowDownload = true;
}
else
{
header('HTTP/1.0 401 Unauthorized');
}
}
당신이 말한 부분은 이제 프록시가 잘 작동하지만 사용자는 여전히 직접 링크를 통해 다운로드 할 수 있으므로 사용자가 다운로드하지 못하도록 제안하는 방법은 무엇입니까? – DarkOne
파일을 웹 서버를 통해 직접 액세스 할 수없는 디렉토리에 배치해야합니다. 그렇지 않으면'.htaccess' 파일이 친구입니다. [this] (http://pastebin.com/dVdDeT11)과 같은 것이 효과가 있습니다. 내가 잘못하지 않았다면, 디렉토리에있는 모든 비 PHP 파일에 대한 요청은'/ files/proxy.php' 스크립트로 리디렉션됩니다. –