Файл: auth.php
Строк: 23
<?php
require_once('kernel/start.php');
if ($user == true) {
header('location:/');
die();
}
if (isset($_POST['save'])) {
$err = [];
$form = ['user' => isset($_POST['user']) ? check($_POST['user']) : false, 'pass' => isset($_POST['pass']) ? check($_POST['pass']) : false];
if (empty($form['user']) OR empty($form['pass'])) {
$err[] = 'Не введен Логин или Пароль!';
}
elseif (mb_strlen($form['user'])>15 OR mb_strlen($form['user'])<2) {
$err[] = 'Слишком длинный или короткий логин!';
}
elseif (mb_strlen($form['pass'])>15 OR mb_strlen($form['pass'])<6) {
$err[] = 'Слишком длинный или короткий пароль!';
}
elseif (!preg_match('!^[a-z0-9]+$!i',$form['pass'])) {
$err[] = 'В пароле обнаружены запрешенные знаки!';
}
elseif (!preg_match('!^[a-zа-я0-9]+$!i',$form['user'])) {
$err[] = 'В логине присутствуют запрещенные символы';
}
$array = $dbs->prepare("SELECT * FROM user WHERE user = ? AND pass = ? LIMIT 1");
$array->execute([$form['user'],hash_sha1($form['pass'])]);
if ($array -> rowCount() == 0) {
$err[] = 'Данного пользователя не существует!';
}
$arr = $array -> fetch(PDO::FETCH_ASSOC);
if ($arr['pass'] != hash_sha1($form['pass'])){
$err[] = 'Не верный пароль!';
}
if (empty($err)) {
// устанавливаем cookie + session
setcookie('auth', base64_encode($arr['id'].'::'.hash_sha1($form['pass'])), time()+3600*24*365, '/');
$_SESSION['auth'] = base64_encode($arr['id'].'::'.hash_sha1($form['pass']));
header('location: /');
} else {
foreach($err as $error) {
echo $error.'<br/>';
}
}
}
echo '<center><form method="post" action="#"><center>Логин:<br/><input name="user" type="text"/><br />Пароль:<br /><input name="pass" type="password"/><br /><input value="Авторизоваться" name="save" type="submit"/></form></center>';
?>