Файл: __system/pages/authentication.php
Строк: 58
<?
      if(!empty($_COOKIE['login']) && !empty($_COOKIE['password']))
        {            Header('Location: /cabinet/');
        }
      DEFINE('TITLE' , 'Aвторизация');  # фиксируем титул
head(); 
                if(isset($_POST['confirmed']))
                {
                   $error = '';
                   if(!preg_match("/^[A-Za-z1-9_]{2,20}$/iu",$_POST['login']) && !preg_match("/^[А-ЯЁа-яё1-9_]{2,20}$/iu",$_POST['login']))
                      # проверяем на запрешенные символы
                         {
                           $error .= 'В <i>логине</i> используются запрешенные символы<br>';
                         }
                     if((mb_strlen($_POST['login'], 'utf-8')<3) or (mb_strlen($_POST['login'], 'utf-8')>15))
                     # проверяем на количество символов
                         {
                           $error .= '<i>Логин</i> должен быть не менее 3 символов и не более 15<br>';
                         }
                     if(!preg_match("/^[A-Za-z1-9_]{2,20}$/iu",$_POST['password']) && !preg_match("/^[А-ЯЁа-яё1-9_]{2,20}$/iu",$_POST['password']))
                     # проверяем на запрешенные символы
                         {
                           $error .= 'В <i>пароле</i> используются запрешенные символы<br>';
                         }
                     if((mb_strlen($_POST['password'], 'utf-8')<6) or (mb_strlen($_POST['password'], 'utf-8')>30))
                     # проверяем на количество символов
                         {
                           $error .= '<i>Пароль</i> должен быть не менее 6 символов и не более 30.<br>';
                         }
                  $users = $db->prepare("SELECT `salt` FROM `users` WHERE `name` = ? LIMIT 1");
                    $users->bindValue(1, $_POST['login'], PDO::PARAM_STR);
                    $users->execute();
                    if($users -> rowCount() == 0)
                    {
                       $error .= 'Такого <i>логина</i> нет в системе<br>';
                    }
                     else
                    {                      $u = $users -> fetch(PDO::FETCH_ASSOC);
                      $password = md5(md5($_POST['password']).$u['salt']);
                      $userss = $db->prepare("SELECT `id` FROM `users` WHERE `name` = ? and `password` = ? LIMIT 1");
                      $userss->bindValue(1, $_POST['login'], PDO::PARAM_STR);
                      $userss->bindValue(2, $password, PDO::PARAM_STR);
                      $userss->execute();
                       if($userss -> rowCount() == 0)
                        {
                           $error .= 'Неверный <i>пароль</i><br>';
                        }
                    }
                  if(empty($error))
                   {                      $users = $db->prepare("SELECT `salt` FROM `users` WHERE `name` = ? LIMIT 1");
                      $users->bindValue(1, $_POST['login'], PDO::PARAM_STR);
                      $users->execute();
                      $u = $users -> fetch(PDO::FETCH_ASSOC);
                      $password = md5(md5($_POST['password']).$u['salt']);
                      SetCookie('login',$_POST['login'],time()+3600*84*84 , '/' , '.'.$_SERVER["HTTP_HOST"].'');
                      SetCookie('password',$password,time()+3600*84*84, '/' , '.'.$_SERVER["HTTP_HOST"].'');
                      Header('Location: /cabinet/');
                   }
                     else
                   {                       DEFINE('TITLE' , 'Вход в кабинет');  # фиксируем титул                    head();
                    echo '<div class="main">';
                    echo ''.$error.'<br />';
                    echo '<form action="/authentication/" method="post">';
                    echo 'Логин:<br />';
                    echo '<input name="login" maxlength="10"/><br />';
                    echo 'Пароль:<br />';
                    echo '<input name="password" type="password" maxlength="10"/><br />';
                    echo '<input name="confirmed" type="submit" value="Продолжить" /></form>';
                   }
                }
                  else
                {
                  echo '<div class="main">';
                  echo '<form action="/authentication/" method="post">';
                  echo 'Логин:<br />';
                  echo '<input name="login" maxlength="10"/><br />';
                  echo 'Пароль:<br />';
                  echo '<input name="password" type="password" maxlength="10"/><br />';
                  echo '<input name="confirmed" type="submit" value="Продолжить" /></form>';
                }
      echo '</div>';
      foot();
?>