Простой вход в систему для личных пользовательских файлов - PullRequest
0 голосов
/ 01 июня 2011

Я хочу создать простой вход в систему только с несколькими жестко заданными комбинациями имени пользователя и пароля, которые дают доступ к отдельным личным каталогам с файлами, которые я загружаю. (mysite.com/user1/, mysite.com/anotheruser/...)

Ниже приведено содержимое mylogin.php.

Какие у меня есть подходы для "защиты паролем" файлов, загружаемых только с этой страницы и соответствующими пользователями? Информация не будет ужасно конфиденциальной, но она должна быть несколько защищенной.

<?php   //List of users and their passwords
$users = array(
    "myusername" => "mYpaSSw0rd2011",
    "anothername" => "password2"
);?>

<html>
<head><title>Private Login</title></head>
<body>

    <form method="POST" action="mylogin.php">
      Username: <input type="text" name="username" size="15" /><br />
      Password: <input type="password" name="password" size="15" /><br />
      <input type="submit" value="Login" />
    </form>

<?php //check username:password combo
if ( isset($_POST["username"]) && $_POST["username"] != "" && ($users[$_POST["username"]] == $_POST["password"]) 
    //*******************************************************
    //list (private) files in mysite.com/username's directory
    //*******************************************************    
}?>

</body></html>

Ответы [ 2 ]

2 голосов
/ 01 июня 2011

Вы найдете это очень полезным:

header ('Content-disposition: attachment; filename.pdf');

Просто прочитайте файл (например, используя readfile), выгрузите данные и установите заголовок в качестве вложения.

Храните оригиналы там, где к ним нет доступа по протоколу http (или используйте HTACCESS для их защиты).

0 голосов
/ 02 июня 2011

Я подумал, что было бы целесообразно опубликовать код, который я использовал для дальнейшего использования.В итоге я разделил проект на 3 разных файла (а также каталоги для пользователей).

В пользовательских каталогах я поместил файлы .htaccess с <Files *>Deny from all</Files>, чтобы их файлы были защищены.1005 * Кроме того, я знаю, что сделал кое-что довольно плохо.Я начал использовать сессии, но мне было трудно заставить его работать правильно.Вы можете увидеть некоторые из остатков в коде.Любая помощь в рефакторинге будет принята с благодарностью.

Я вырезал некоторую разметку, чтобы сделать следующий код более читабельным.

...