PHP / Mysql User Management с вопросом пользовательских каталогов - PullRequest
2 голосов
/ 04 ноября 2010

Еще один вопрос по управлению пользователями в PHP / MySQL. Он предназначен для редактора изображений, поэтому у каждого пользователя должен быть свой «пробел», т. Е. Каталог пользователя (USERDIR) при регистрации, и все, что находится в этом каталоге, должно быть доступно только соответствующему пользователю. Довольно простой шаг вперед, но я не могу найти правильные ключевые слова для поиска учебника.

То, как я думал о его реализации, это наличие столбца «USERDIR» в базе данных MySQL вдоль сторон «USERID» и «PASSWORD» (хэш md5) (хотя я понимаю, что USERDIR является избыточным ключом, если USERID также уникальны - это проблема, о которой стоит беспокоиться? т.е. я мог бы просто назначить USERID в качестве имени каталога, а не генерировать уникальное случайное имя каталога). Как мне тогда «проверить», имеет ли пользователь права доступа к своему каталогу (т. Е. Как мне его кодировать, чтобы проверить сессионный идентификатор / cookie, чтобы предотвратить переход другого пользователя на mysite.com/USERID или mysite.com/USERDIR) , Я ценю, что это действительно простой и повторяющийся для некоторых из вас, но я не могу найти соответствующие учебники в любом месте! Любая помощь высоко ценится.

Ответы [ 2 ]

0 голосов
/ 04 ноября 2010

Вы также можете подать изображение через PHP, чтобы убедиться, что на веб-странице нет видимых путей к изображению, например,

$imagepath= 'some-input-file.jpg';
$image=imagecreatefromjpeg($imagepath);
header('Content-Type: image/jpg');
imagejpeg($image, '', 90);

Имейте в виду, это не мешает другим людям просматривать изображениеесли они нашли реальную ссылку - для этого вам может понадобиться .htaccess

0 голосов
/ 04 ноября 2010

да, просто используйте UserID-хранилище файлов изображений. Но убедитесь, что вы включили свой запрос на местоположение userdir в вызове функции на случай, если вам потребуется изменить его, чтобы иметь дело с ограничениями файла каталога. например, предположим, что $ imageName - это имя изображения, которое вы пытаетесь сохранить или получить,

$userDir = getUserDir($userID);
$imgLink = 'http://' .$hostname .'/' . $userDir . '/' . $imgName;

function getUserDir($userID)
{
    return 'images/' . $userID;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...