Shpion
Новичок
Авторизация php+MySql. Принципы.
Доброе утро(день/вечер/ночь), у меня возникла проблема.
Ваш форум просмотрел, но точного ответа не нашел.
Вообщем, делаю сайт.
Смысл всего проекта такой:
пользователь заходит на index - страницу. Там ему предлагают ввести логин и пароль. Если он проходит данную авторизацию, то для него генерируется страница, которая содержит файлы(отчеты), предназначенные только для него. Отчеты берутся из папки
www/admin/file/$login(логин пользователя). То есть, для каждого пользователя создается своя папка.
На странице генерируются ссылки на эти документы.
?) Как сделать так, чтобы папка admin/file(и, соответственно все подпапки) были доступны ТОЛЬКО пользователям из БД и администратору, а папка admin только админу ?
Я выбрал способ регистрации с помощью заголовка. То есть , если пользователь ввел данные в форму(а их правильность проверяется по БД), то его браузеру посылается соответствующий заголовок.
Код приведу ниже, но вопрос в другом(по правильной структуре):
К скриптам в папке admin ни через фтп, ни через хтмл доступа не будет, но к папкам , в которых хранятся файлы - будет! Они же не запаролены от фтп...
А если паролить через .htaccess, то будет двойная авторизация...
Вот код авторизации:
Праверьте на правильность. А то он работает, вроде, но нестабильно...
Но, пока вопрос в по самой структуре
Заранее спасибо.
Доброе утро(день/вечер/ночь), у меня возникла проблема.
Ваш форум просмотрел, но точного ответа не нашел.
Вообщем, делаю сайт.
Смысл всего проекта такой:
пользователь заходит на index - страницу. Там ему предлагают ввести логин и пароль. Если он проходит данную авторизацию, то для него генерируется страница, которая содержит файлы(отчеты), предназначенные только для него. Отчеты берутся из папки
www/admin/file/$login(логин пользователя). То есть, для каждого пользователя создается своя папка.
На странице генерируются ссылки на эти документы.
?) Как сделать так, чтобы папка admin/file(и, соответственно все подпапки) были доступны ТОЛЬКО пользователям из БД и администратору, а папка admin только админу ?
Я выбрал способ регистрации с помощью заголовка. То есть , если пользователь ввел данные в форму(а их правильность проверяется по БД), то его браузеру посылается соответствующий заголовок.
Код приведу ниже, но вопрос в другом(по правильной структуре):
К скриптам в папке admin ни через фтп, ни через хтмл доступа не будет, но к папкам , в которых хранятся файлы - будет! Они же не запаролены от фтп...
А если паролить через .htaccess, то будет двойная авторизация...
Вот код авторизации:
PHP:
<?php
global $PHP_AUTH_USER,$PHP_AUTH_PW;
$dbhost = "localhost";
$db_name = "ust";
$dbuser = "root";
$dbpassword = "";
$db = mysql_connect($dbhost,$dbuser,$dbpassword);
mysql_select_db($db_name,$db);
if(!isset($PHP_AUTH_USER))
{
Header("WWW-Authenticate: Basic realm=\"Access denied\"");
Header("HTTP/1.0 401 Unauthorized");
print("Защищенная директория. Введите логин и пароль");
exit();
}
else
{
$password = "$PHP_AUTH_PW";
$result=mysql_query("SELECT pass FROM idllogon WHERE login=\"$PHP_AUTH_USER\"");
if(!$result) exit(mysql_error());
$row=mysql_fetch_array($result);
if ($row==NULL)
{
Header("WWW-Authenticate: Basic realm=\"Admin Center\"");
Header("HTTP/1.0 401 Unauthorized");
exit();
}
else
{
$real_password="$row[pass]";
if ($real_password!=$password)
{
Header("WWW-Authenticate: Basic realm=
\"Access denied\"");
Header("HTTP/1.0 401 Unauthorized");
exit();
}
}
}
?>
Но, пока вопрос в по самой структуре
Заранее спасибо.