Отправляет email-рассылки с помощью сервиса Sendsay

PHP-песочница

  Все выпуски  

PHP-песочница Секретный раздел на сайте


Php-«песочница»

Выпуск 22

Здравствуйте. С вами Андрей Чернобай с новым выпуском "PHP - песочницы". Рассылка создана для самых "маленьких" - для тех, кто делает только первые шаги в программировании на PHP. Если Вы хотите двигаться быстрее и освоить создание PHP- сайтов профессионально, рекомендую курс PHP+MySQL для начинающих, потому что в этом курсе собрано всё то, что необходимо именно для создания сайтов, никакой "воды", при этом всё доступно, подробно до мелочей и наглядно.

Для отписки от рассылки внизу страницы есть ссылка. А с остальными продолжим.

В прошлых выпусках я начал выкладывать свою коллекцию скриптов. Сегодня новый скрипт.

Секретный раздел на сайте

На индексной странице добавляем заголовок "Секретная страница " и делаем из него ссылку на файл именем secret.php. Создаём этот файл.

Запускаем Денвер, открываем индексную страницу в браузере и проверяем, как работает новая ссылка на новую страницу, которая пока пуста.

Открываем secret.php в своём редакторе и добавляем к базовому коду этой страницы заголовок "Секретная страница" - просто чтобы в процессе переходов по ссылкам видеть, что мы попали именно на эту страницу. К тому же, можно разместить ссылку и на главную страницу - для возвращения. Таким образом, весь код секретной страницы должен выглядеть так:

<html>
<head>
<title> Секретная страница </title>
</head>
<body>

<h1>Секретная страница</h1>
<p align="center"><a href="index.html">На главную</a></p>

</body>
</html>

Сохраните изменения, обновите страницу в браузере, должен появиться заголовок "Секретная страница" и ссылка на главную. Надеюсь, у вас получилось. Теперь нужно создать скрипт, который закроет доступ к файлу secret.php для всех, кто не знает пароля.

Вводят пароль всегда в форму, у которой есть поле для собственно ввода пароля и кнопка, запускающая скрипт, проверяющий соответствие пароля. Форма будет расположена на отдельной странице, которой дадим имя psw.php.

Создайте файл psw.php. Код этого файла будет содержать базовый HTML-код и код формы, ну, и для комфорта навигации можно добавить заголовок "Ввод пароля" и ссылку на главную страницу:

<html>
<head>
<title> Ввод пароля для доступа к Секретному разделу </title>
</head>

<body>

<h1>Ввод пароля</h1>

<form action="" method="post">
<p>Введите пароль: <br>
<input name="psw" type="password"></p>
<p><input value="Проверить пароль " type="submit"></p>
</form>

<p align="center"><a href="index.html">На главную</a></p>

</body>
</html>

Мы не указали значение атрибута action, потому что скрипт будет в этом же файле.

Сохраните изменения, в адресной строке браузера наберите http://php/psw.php. Должна открыться страница с формой из текстового поля и кнопки "Проверить пароль ".

Осталось создать скрипт-обработчик формы. Скрипт должен делать следующее:

- проверять, существует ли в поле формы переменная;

- если существует - сходится ли она с заранее установленым паролем;

- если пароль верен, перенаправить пользователя на секретную страницу;

- если пароль НЕ верен, никуда не перенаправлять.

Вообще-то, если вы последовательно и внимательно выполняли упражнения на сайте и в прошлых выпусках рассылок, то можете создать такой скрипт и сами. Потому что ничего сложного здесь нет...

Вот так это будет выглядеть (скрипт зелёным):

<?php
if (isset ($_POST['psw'])) //если в поле формы существует переменная, то сравниваем её с заранее установленным паролем, в нашем случае пароль "12345"
{
if ($_POST['psw'] == '12345') //если переменная из формы равна паролю, то
{
header ('Location: secret.php?psw=12345'); //перенаправляем пользователя на секретную страницу
}
else //иначе, то есть, если данные из формы на пароль не похожи, то
{
header ('Location: psw.php'); //оставляем пользователя на странице с формой
}
exit(); //и останавливаем скрипт
}
?>

<html>
<head>
<title> Ввод пароля для доступа к Секретному разделу </title>
</head>

<body>

<h1>Ввод пароля</h1>

<form action="" method="post">
<p>Введите пароль: <br>
<input name="psw" type="password"></p>
<p><input value="Проверить пароль" type="submit"></p>
</form>

<p align="center"><a href="index.html">На главную</a></p>

</body>
</html>

Вот и всё, ничего сложного. Думаю, в комментариях всё объясняется достаточно подробно.

Единственное, что могло вызвать недоумение, если вы внимательно всё делали, это вот эта строка:

...
header ('Location: secret.php?psw=12345');
...

Вернее, внешний вид ссылки. Такой вид ссылка имеет, когда данные передаются методом GET. Для чего это было нужно здесь, вы поймёте, выполняя упражнение дальше.

А дальше нужно ещё уделить внимание файлу secret.php. Открываем его в редакторе. В код этого файла нужно добавить скрипт, который запретит вход с главной страницы (как вы помните, именно с неё ведёт сюда ссылка), а всех, кто попытается попасть на секретную страницу, минуя форму проверки пароля, направит к форме.

Делается это очень просто, в код файла secret.php добавляем следующее:

<?php
if ($_GET['psw'] != '12345') //вот здесь-то и проверяется, есть ли в ссылке, сформированной методом GET, наш пароль. И если пароля "12345" в ссылке нет, то
{
header ('Location: psw.php'); //пользователь перенаправляется на страницу с формой
exit(); //и скрипт останавливается
}
?>
<html>
<head>
<title> Секретная страница </title>
</head>
<body>

<h1>Секретная страница</h1>
<p align="center"><a href="index.html">На главную</a></p>

</body>
</html>

Сохраните все изменения в файлах и обновите страницы в браузере.

Теперь при попытке перейти на секретную страницу по ссылке с главной страницы вы должны попасть на страницу с формой. Попробуйте ввести в поле формы неверный пароль, затем правильный...

Надеюсь, у вас всё получилось.

Но у такого способа организации секретного раздела есть недостаток: при выходе с секретной страницы потом приходится заново вводить пароль. На практике так не делается, а пользоватль имеет доступ ко всем защищённым страницам в процессе всего своего пребывания на сайте. Такая возможность реализуется при помощи сессий и cookies.

P. S. Если Вы хотите научиться создавать PHP-сайты профессионально и сэкономить на освоении программирования несколько лет, то Вам сюда.


"PHP + MySQL для начинающих"


P. S. Остальные уроки и статьи по PHP Вы найдёте как всегда здесь. Все возникающие вопросы Вы можете задать, прислав мне письмо на электроный адрес (см. подпись к выпуску) или через форму для добавления комментариев на страницах сайта.

Автор расылки: Андрей Чернобай
kapitansg@yandex.ru


В избранное