Anastasia1999
@Anastasia1999
Учу php, практикуюсь

Почему код не проверяет пароль?

$data = $_POST;
	if ( isset($data['do_login']) )
	{
		$user = R::findOne('users', 'login = ?', array($data['login']));
		if ( $user )
		{
			//логин существует
			// if ($data['password'] == $user->password )
			if (md5($data['password'] == $user->password) )
			{
				//если пароль совпадает, то нужно авторизовать пользователя
				$_SESSION['logged_user'] = $user;
				header("Location: ".$_SERVER["REQUEST_URI"]);
			}else
			{
				$errors[] = 'Неверно введен пароль!';
			}

		}else
		{
			$errors[] = 'Пользователь с таким логином не найден!';
		}
		
		if (!empty($errors) )
		{
			//выводим ошибки авторизации
			echo '<div id="errors" style="color:red;">' .array_shift($errors). '</div><hr>';
			echo '<style>
			.log_alert{
				display: block!important;
			}
			</style>';
		}

	}


RedBeanPhp. Почему то не проходит проверка на пароль. Можно ввести верный логин и любой пароль и тогда все равно авторизует. Кто может посмотреть, в чем может быть проблема?
  • Вопрос задан
  • 122 просмотра
Решения вопроса 1
glaphire
@glaphire Куратор тега PHP
PHP developer
Эта проверка некорректна
if (md5($data['password'] == $user->password) ) {
у Вас md5 от выражения, а не md5 от пришедшего пароля.
надо
if (md5($data['password']) == $user->password )
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы