Показать сообщение отдельно
Старый 13.04.2014, 15:32   #8
Visible
Пользователь
 
Регистрация: 11.07.2010
Сообщений: 56
Сказал(а) спасибо: 16
Поблагодарили 0 раз(а) в 0 сообщениях
Visible На верном пути
По умолчанию

вроде разобрался. сделал это так:
Код:
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'];

Последний раз редактировалось Visible; 13.04.2014 в 18:09.
Visible вне форума   Ответить с цитированием