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

PHP: Авторизация в текстовом файле

Авторизация пользователей с использованием базы в текстовом файле.

index.php

<? session_start(); // стартуем сессию
    $vivod = '<a href="authorization.php">Вернуться к форме</a><br>'; 

    // Если переменная auth из сессии не пуста и равна true, то дадим доступ:
    if ($_SESSION['user'])
    {
        $vivod .= "Здравствуйте ". $_SESSION['user'].'<br>'; 
        $vivod .= ' <a href="logout.php">ВЫЙТИ</a><br>'; 
        echo $vivod;     
    } else {
        echo 'Доступ запрещен!'; 
        echo "<html><head><meta http-equiv='Refresh' content='2; URL=authorization.php'></head></html>";
        exit;
    }
?>
<!DOCTYPE html>

<head>
    <html lang="ru">
    <meta charset="UTF-8">
    <title>test.php</title>
</head>

<body>
    Если авторизации нет,то эту строчку вы не увидите.<br>
    Таким образом скрывают информацию от незарегистрированных. <br>
</body>

</html>

authorization.php

<?
session_start(); //стартуем сессию
$home  = $_SERVER['DOCUMENT_ROOT']."/";
$dir_Spisok = $home.'./users.dat';//записываем пользователей или удаляем
$users  = file_get_contents($dir_Spisok);// 
$lines  = explode("\n", $users);
$login  = strip_tags (trim($_POST['login'] )); 
$password = md5(strip_tags (trim($_POST['password']))); 

//echo $login .'<br>'.$password;
if ($_POST['submit']) 
{
 if ((@strpos($users, $login) == TRUE) or (@strpos($users, $password) == TRUE) )
 {
  for ($i = 0; $i < count($lines); $i++) 
  {
   $parts = explode("::",$lines[$i]);
   if((trim($parts [0]) == $login) and (trim($parts [1]) == $password))
   {
    //Запишем в сессию информацию о том, что мы авторизовались:
    $_SESSION['user'] = $login; //http://dwweb.ru/page/php/028_chto_takoe_sessii_v_php.html
    if (!isset($_COOKIE['user']))
    {
    setcookie("user", $login ,time()+31556926); //http://dwweb.ru/page/php/file/001_php_ustanovit_cookies_chto_eto_primer_ispolzovaniya.html
    }
   }
  }
 } 
 else
 {
 $vivod = 'такой логин не зарегисрирован<br>';  
 }

 if(!$vivod)
 {
  if ($_SESSION['user'])
  { 
  $vivod = 'Вы авторизованы!<br>Здравствуйте '.$login. '<br> <a href="logout.html">ВЫЙТИ</a> <br> ';
  }
  else
  {
  $vivod = 'Либо логин, либо пароль не верны.';
  }  
 }
}

?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<? $title = "Пример работы скрипта: Авторизация на php, на файлах"; ?>
<title><? echo $title; ?></title>
<meta name="description" Content="<? echo $title; ?>"/>
<meta name="keywords" content="<? echo $title; ?>" /> 
<style>.form { margin: auto; width: 300px; border: 1px solid #e6e6e6; padding: 29px; background: #fbfbfb;}input[type="text"], input[type="password"] { width: 250px; margin: auto; display: -webkit-box; padding: 11px; margin-bottom: 23px; border: 1px solid #d2d4d6;}input[type="submit"] { margin-left: 12px; width: 277px; padding: 10px;}.form span { width: 92px; display: block; margin: auto; margin-bottom: 15px;} red{color: red;}</style>
</head>

<body>
 <? if(!$_SESSION['user']){?> 

 <h2 title="<? echo $title; ?>"><? echo $title; ?></h2>
 login = <red>admin</red> password = <red>dwweb</red> <br>
 <red><? echo $vivod ; ?> </red><br>

 <div class="form">
   <form action='' method='POST'>
    <span>Авторизация</span>
    <input name='login' type='text' placeholder="login" required> 
    <input name='password' type='password' placeholder="password" required> 
    <input type='submit' value='Отправить' name='submit'>
   </form> 
  </div>
  <? } else {
  echo '<red>Вы уже авторизованы!</red><br>'; 
  }
  ?>
  <br><br>
  <a href="test.php">ТЕСТ - проверки авторизации</a><br>
  База данных в файле <a href="users.dat" target="_blank">users.dat</a><br>
  Страница выхода <a href="logout.php" target="_blank">logout.php</a><br>
 </div>
</body>
</html>

Скачать пример