Как страничку запаролить?
Создать .htaccess
Где создать и что туда написать?
http://www.tutby.com/service/hosting/faq/#_Toc78009578
Не забудь в настройках апача поставить AllowOverride All на твою директорию.
Если инета нет - могу сюда кинуть.
Не забудь в настройках апача поставить AllowOverride All на твою директорию.
Если инета нет - могу сюда кинуть.
Кинь. Кстати. А если httpd.conf находится не в моих руках - то ни фига без звонка хостеру не сдлаешь?
Скорее всего у хостера уже включен аллоу оверрайд, так что все ок.
Правда некоторые хостеры ни фига не разрешают даже htaccess пользоваться...
Правда некоторые хостеры ни фига не разрешают даже htaccess пользоваться...
Как закрыть директорию паролем?
Вы можете воспользоваться файлом .htaccess — его следует положить в защищаемую директорию со следующим содержимым:
# Access file
order allow,deny
allow from all
require valid-user
Authname DirectoryName
Authtype Basic
AuthUserFile /home/./.passwd
Этот файл лучше положить в директорию недоступную через WWW. Узнать полный путь доступа к этому файлу лучше через SSH, для чего зайдите в директорию с файлом .passwd и наберите команду pwd.
Создать файл с паролями Вы можете на своем компьютере с помощью программы htpasswd. Наберите команду: htpasswd [-c].passwd username. Параметр -c нужен только в том случае, если Вы создаете новый файл с паролями. Если Вы хотите добавить нового пользователя к уже существующему файлу, то указывать -с не нужно. username — имя добавляемого пользователя. После того, как Вы нажмете ENTER, Вам нужно ввести (два раза во избежание ошибки) пароль для нового пользователя. Это все!
Также, файл с паролями можно формировать и из скрипта, например на Perl:
open(F, ">>.passwd") || die "
Can`t append file.passwd";
print F "$username:". crypt($password, "ms"). "n"; close(F);
system "chmod 766 .htpasswd";
где в переменных $username и $password — имя и пароль нового пользователя. Вместо "ms" можно подставлять любые две буквы.
Важно: чтобы увидеть файл .htaccess в списке файлов на сервере, в FTP-клиенте зачастую необходимо предварительно активировать опцию отображения скрытых файлов (пр. командой FTP Show Hidden Files в Total Commander).
Если httpd.conf не в твоих руках и в нем AllowOverride None то, боюсь, придется звонить хостеру.
А у меня хостинг халявный
. Правда, не в обычном понимании этого слова, но базу я себе два года выбивал:). Да наверное, включено.. надо попробовать.
. Правда, не в обычном понимании этого слова, но базу я себе два года выбивал:). Да наверное, включено.. надо попробовать.> Вы можете воспользоваться файлом .htaccess — его следует положить в защищаемую директорию
> Этот файл лучше положить в директорию недоступную через WWW.
А как бы эти два предложения совместить?:)
> Этот файл лучше положить в директорию недоступную через WWW.
А как бы эти два предложения совместить?:)
А если человек F5 нажмет, то опять придется вводить пароль? Или это дело как-то запоминается?
> Этот файл лучше положить в директорию недоступную через WWW.
это про файл, в котором хранится пароль, а не .htaccess
2
запоминается, т.е. если ф5 нажмешь - все нормально будет
Суть-то такая. Изучаю PHP и MySQL. Сделал так, что showtable.php выводит таблицу, killrow.php удаляет запись, addrow.php добавляет. Все три странички лежат в одной директории, и мне хочется, чтобы левый народ туда не ходил. В то же время есть опасение, что после выполнения, скажем, killrow.php и возврате по ссылке опять на showtable.php человека заставят снова вводить пароль, что не является приемлемым вариантом. В то же время, паролем должны быть защищены все файлы в директории, чтобы никто не смог выполнить killrow.php или addrow.php.
<Files killrow.php addrow.php>
AuthUserFile /home/www/.secret
AuthName "Please enter fucking password"
AuthType Basic
<Limit GET>
require user USER
</Limit>
</Files>
AuthUserFile /home/www/.secret
AuthName "Please enter fucking password"
AuthType Basic
<Limit GET>
require user USER
</Limit>
</Files>
Круто, спасибо. Только что-то не создается на сервере файл .htaccess и вообще файлы с точкой вначале.
чё за сервер?
Ложная тревога. Все в порядке. Надо было показ скрытых файлов врубить, как и указывалось выше.
тока путь правильный до .secret укажи, а то работать не будет %)
Да хер его знает, ничего не пойму. Ни таблички, ни текста. Вообще ничего не показывается.
На сервере такая структура:
[dir] cgi-bin
[dir] html
+ [dir] ...
+ [dir] secret
+ + мои 3 файла
+ + .htaccess
+ + .secret
+ [dir] ...
[dir] icons
.forward
Путь указан как AuthUserFile /home/secret/.secret. Верно?
Кстати, а в файле .secret что должно быть? Его только той прогой можно создавать?
На сервере такая структура:
[dir] cgi-bin
[dir] html
+ [dir] ...
+ [dir] secret
+ + мои 3 файла
+ + .htaccess
+ + .secret
+ [dir] ...
[dir] icons
.forward
Путь указан как AuthUserFile /home/secret/.secret. Верно?
Кстати, а в файле .secret что должно быть? Его только той прогой можно создавать?
/home/secret/.secret - это для примера
нужно указать путь, где он реально лежит
если у тебя виндовый сервак, то чё нить типа c:/work/.secret (слэши именно такие)
создать файл можно прогой htpasswd
если не ошибаюсь, в винде лежит где то в апачевских бинарниках
htpasswd -c .secret USERNAME
нужно указать путь, где он реально лежит
если у тебя виндовый сервак, то чё нить типа c:/work/.secret (слэши именно такие)
создать файл можно прогой htpasswd
если не ошибаюсь, в винде лежит где то в апачевских бинарниках
htpasswd -c .secret USERNAME
Почему-то не упомянули такой способ, хотя судя по твоим требованиям он м.б. оптимален:
<?
function aut
{
header("WWW-Authenticate: Basic realm=\"Secure\"");
header("HTTP/1.0 401 Unauthorized");
echo "Enter password\n";
exit;
}
include_once "db/db.php" //в db.php запихнуто подключение к СКуЛ-серверу.
if(!isset($_SERVER["PHP_AUTH_USER"]) || !isset($_SERVER["PHP_AUTH_PW"] aut;
else {
$uname=strtolower($_SERVER["PHP_AUTH_USER"]);
$upass=$_SERVER["PHP_AUTH_PW"];
$result = mysql_query("select * from ADMINS where name='".$uname."'") or die(mysql_error;
if ($row = mysql_fetch_array($result{
if ($row['pass']==$upass)
{
//.....человек нормально авторизовался....
//...сюда либо вставить, либо инклюдить код, который должен исполняться в случае нормальной авторизации
}
else aut;
} else aut;
};
.....
?>
в таком случае нужно не проебаццо и не писать этот код на пхп 5.0.0
Оставить комментарий
al70
Чтобы окошко возникало перед тем, как зайти. Есть страничка, есть сервер, где она лежит. Что надо и где поменять/создать, чтобы пароль спрашивали?