Справочники, инструменты, документация

PHP: Закрыть сайт паролем

Иногда необходимо закрыть все страницы сайта под паролем. Делается это по разным причинам, например, администратор разрешает использовать информацию сайта исключительно нескольким пользователям, которым заранее дал пароль доступа.

Реализовать на PHP закрытие страниц сайта под пароль очень просто. Для этого можно использовать много техник, но мы опишем работу из сессиями.

// Проверяем на доступ:
if ( isset( $_SESSION['PrivatePageLogin'] ) && $_SESSION['PrivatePageLogin'] == 'asdsasd' ) 
 {
 // Выполняем текст страницы
 // ...
 }
else {
 echo '
 <style type="text/css">
 .form-inline{ margin: 0 auto; text-align: center }
 .form-inline label{ margin: 5px 10px 5px 0 }
 .form-inline input{ vertical-align: middle; margin: 5px 10px 5px 0; padding: 10px; background-color: #fff; border: 1px solid #ddd }
 .form-inline button{ padding: 10px 20px; background-color: dodgerblue; border: 1px solid #ddd; color: white }
 .form-inline button:hover{ background-color: royalblue }
 </style>';

 // Проверяем доступ:
 if ( isset( $_POST['Login'] ) )
 {
 if ( isset( $_POST['password'] ) && $_POST['password'] == 'mypassword' ) {
  $_SESSION['PrivatePageLogin'] = 'asdsasd';
  header( "Location: $_SERVER[PHP_SELF]" );
  }
  else {
  echo '
  <style type="text/css">
  .form-inline input{ border: 1px solid red }
  </style>';
  }
 }
 echo '<form class="form-inline" action="" method="POST">
 <input type="password" name="password" placeholder="Enter password" />
 <button type="submit" name="Login">Ok</button>
 </form>';
 }

Из кода видно, что сначала идет проверка на наличие сессии и равенство на ее значения. Если проверка прошла успешно - выполняем код страницы, иначе мы выводим форму для отправки пароля. Если пользователь ввел правильные данные авторизации - сохраняем сессию и перезагружаем страницу. Также к форме добавленные стили, которые значительно украсят форму ввода пароля. Соответственно необходимо пароль вместо mypassword ввести свой.