PHP-авторизация (18.10.2012)
Какой же сайт может существовать без супер-секретной авторизации. Для местных нужд я написал следующую функцию. Для многопользовательского режима $login и $password будут итерироваться исходя из количества строк в таблице базы с пользователями, разумеется. Ну и вместо пароля во всех случаях желательно использовать хеш.

function auth() {
  $login="SuperVasya";
  $password="MegaPassword";
  if (isset($_POST[logout])) {
    unset($_SESSION[login]);
    $output = "Bye";
  }
  if (isset($_SESSION[login])) {
    $output = $_SESSION[login].'
    <form class="login" method="POST">
      <input type="hidden" name="logout" value="'.$_SESSION[login].'">
      <input type="submit" value="Выход">
    </form>';
  }
  else {
    if (isset($_POST[login])) {
      if ($_POST[login]!=$login) {
        $output = "No such user";
      }
      else if ($_POST[password]!=$password) {
          $output = "Wrong password";
      }
      else {
        $_SESSION[login] = $_POST[login];
        $output = auth();
      }
    }
    else {
      $output = '
      <form class="login" method="POST">
      <input type="text" name="login">
      <input type="password" name="password">
      <input type="submit" value="Вход">
      </form>';
    }
  }
    return $output;
}

Перед выводом контента я делаю $output = auth(), далее выводим $output в нужном месте. Проверка на "хорошего парня" определяется существованием $_SESSION[login]:
if (isset($_SESSION[login])) echo 'Top secret';
PHP
comments powered by Disqus
JavaScript (13)
PHP (11)
Brainfuck (8)
adm (8)
Joomla (4)
Canvas (3)
answers (2)
API (2)
CMS (2)
Modx (2)
jQuery (1)
Ajax (1)
SQL (1)
Shell (1)
batch (1)
10-6