вроде разобрался. сделал это так:
Код:
if (!empty($_POST))
{
$login = $db->quote($_POST['login']);
$pass = $db->quote(sha1(strtoupper($_POST['login'].":".$_POST['password'])));
$query = $db->prepare("SELECT `id` FROM `account` WHERE `username`={$login} AND `sha_pass_hash`={$pass} LIMIT 1");
$query->execute();
$rows = $query->fetchAll();
// если такой пользователь нашелся
if (count($rows) == 1)
{
$query = $db->prepare("SELECT `id` FROM `account` WHERE `username`={$login} AND `sha_pass_hash`={$pass} LIMIT 1");
$query->execute();
$row = $query->fetch(PDO::FETCH_ASSOC);
$_SESSION['user_id'] = $row['id'];
$time = 86400;
if (isset($_POST['remember']))
{
setcookie('login', $login, time()+$time, "/");
setcookie('password', $password, time()+$time, "/");
}
header('Location: index.php');
exit;
}
else
{
echo "<script>alert(\"Не правильно ввели логин/пароль.\");</script>";
echo "<meta http-equiv='refresh' content='0; url=/index.php'>";
}
}
Но есть вещичка, которую не пойму. почему теле условия недоступен результат запроса, приходится этот запрос дублировать. как будет правильно?
нашел выход через
Код:
$_SESSION['user_id'] = $rows['0']['id'];