web_Developer_Victor
@web_Developer_Victor
Что такое google?

Не аворизует пользователя?

Не авторизует пользователя на сайте. Я делаю очень простой блог (просто для себя). Когда нажимаю авторизоваться вылазит белый экран. Вот код. Ошибок не видает.

<?php 

				$data = $_POST;

				if (isset($data["do_login"])) {
					$errors = array();

					$users_log = mysqli_query($db_connect, "SELECT * FROM `users` WHERE `name` = '" . $data["login"] . "'");

					if ( $data['login'] == $users_log["name"]) {
						if (passwor_verify($data['password'], $users_log["pass"]) ) {
							# code...
						} else {
							$errors[] = "Пароль не правильний";
						}
					} else {
						$errors[] = "Користувач з таким именем не знайдений";
					}
					echo "<div style='color:red;'>" .	array_shift($errors) . "</div> <hr>";
				}

				?>
  • Вопрос задан
  • 130 просмотров
Решения вопроса 1
slo_nik
@slo_nik Куратор тега PHP
Добрый день.
Вы уже второй вопрос задаёте и пишите, что ошибок нет. Но при этом получаете белый экран.
Так может стоит заглянуть в логи сервер, консоль браузера, включить вывод ошибок в браузер? Повысить, наконец-то, уровень отображаемых ошибок.
Так же не помешает расставить проверки в коде.
Там, глядишь, и ошибка вылезет и Вы сами разберётесь в своей проблеме...

p.s.
Начать можно с того, что вот здесь неверно.
$data = $_POST;
        if (isset($data["do_login"])) {

Правильней будет так
if (isset($_POST)) {
    $data = $_POST;
    // остальной Ваш код
}


p.s.s
Я немного изменил Ваш код и попробовал запустить.
$users_log = mysqli_query($mysqli, "SELECT * FROM `users` WHERE `username` = 'administrator'");

if ($users_log["username"] == 'administrator') {
  if (passwor_verify($data['password'], $users_log["pass"]) ) {
  # code...
  } else {
    $errors[] = "Пароль не правильний";
  }
} else {
  $errors[] = "Користувач з таким именем не знайдений";
}
echo "<div style='color:red;'>" .	array_shift($errors) . "</div> <hr>";

И в результате появилось то, что Вы никак не хотите настраивать!
Fatal error: Uncaught Error: Cannot use object of type mysqli_result as array in /home/slonik/localhost/www/new.php:12 Stack trace: #0 {main} thrown in /home/slonik/localhost/www/new.php on line 12

Вот документация, прочитайте и сделайте как надо.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
dmtrbskkv
@dmtrbskkv
Кодим и декодим, а иногда кино смотрим
А может данные в <form>...</form> не те?
Мб action не тот. Или method не равен post. А мб имена указаны в id, а не в name атрибутах input'ов, что также бывает
Ответ написан
metallix
@metallix
Backend - developer
if (passwor_verify($data['password'], $users_log["pass"]) ) {
              # code...
            }

'passwor_verify' очепятка в названии ф-ии, password_verify
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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