Нужна помошь.... Есть папка например А в ней лежит индекс.хтмл Нужно закрыть доступ ко всей этой папке, чтобы при прямом обращение выдало ошибку, но если переходить со страницы members.php то он открывал эту страницу. как сделать это через .htaccess
придумал для .htaccess: Code: RewriteEngine On rewritecond %{HTTP_REFERER} ^members.php RewriteRule .* /index.php как-то так... только потести, может нет совсем так как тебе нужно
вот так вот, это в index.php: Code: <?php if(@$_SERVER['HTTP_REFERER'] == "http://localhost/members.php") echo "Доступ разрешен"; // сюда что там у тебя должно отображаться вообще else echo "Доступ закрыт!"; ?> проверил - работает ЗЫ. тут http://localhost/members.php понимаешь же, что подправить нужно хост...
mrxh8, впринципе работает, но даже когда доступ закрыт он отображает содержимое страницы ниже...как сделать редерикт или заблокировать содержимое?
не может такого быть! возми в { } содержимое так типа if(@$_SERVER['HTTP_REFERER'] == "http://localhost/members.php") { тут то что должно отображаться } else echo "Доступ закрыт!";
если нужен редирект вместо "Доступ закрыт!", замени else echo "Доступ закрыт!"; на это: else { header("Location: http://google.com"); exit(); }
Лучше делать что-то типа: main.php <?session_start();?> <?if (isset($_SESSION['user_id'])) { echo "<html> <head> <link rel=\"stylesheet\" href=\"http://localhost/css/style.css\" type=\"text/css\"> </head> <body> <div id=\"admin_menu\"> <a href=\"index.php?op=change\">Сменить пароль</a><br><br> <a href=\"index.php?op=add_news\">Добавить новость</a><br><br> <a href=\"index.php?op=add_recl\">Реклама</a><br><br> <a href=\"index.php?op=exit\">Выход</a><br><br> </div> </body> </html>"; } else { exit("Вы не авторизованы"."<br><br><a href=\"http://localhost/admin/auth.php\">Перейти к авторизации</a>"); } ?> index.php <?php define("IN_ADMIN", TRUE); session_start(); // Получаем параметр op из URL $op = $_GET['op']; // Выбираем нужное нам действие switch ($op) { case 'main' : include "main.php"; break; case 'change' : include "change_pass.php"; break; case 'add_news' : include "add_news.php"; break; case 'edit' : include "editcomment.php"; break; case 'add_recl' : include "add_recl.php"; break; case 'show' : include "show.php"; break; case 'exit' : include "exit.php"; break; default : include "main.php"; } ?> Но это тоже коряво и ненадежно
Подскажите еще.. Есть куча папок около 1.5к в каждой папке индекс.хтмл и картинки. сылки на эти индексы идут с members.php . Вопрос, как зыкрать все эти папки что бы при прямом открытие ничего не просматривалось, а вот при открытие через мемберс.пхп открывал?
См. мой предыдущий пост. принцип такой же. На остальных страницах ставишь проверку на isset(IN_ADMIN, TRUE)
Сканишь директорию. Каждую загоняешь в массив. Циклом проделываешь следуйщие действия с каждым: Открываешь индекс.пхп. Загоняешь текст в переменную Записываешь в начало нужный текст - затем текст страницы - затем текст вконце. p/s. Если хтмл страницы то не получится, только с пхп.