Nolis
@Nolis
it-гопник

Не работает авторизация на php?

Здравствуйте,
почему-то после авторизации не появляется в шапке аватарка, логин и личный кабинет, а просто закрывается окно и ничего не происходит. Причем при регистрации всё пушится в БД, а при авторизации сверяет и если данные правильные - то выводит "ок", но ничего не происходит.
if ($_POST['cmd'] == 'login') {
    if (!isset($_POST['email']) || !isset($_POST['pass'])) {
        return;
    }
    $msg = checkData();
    if ($msg != '') {
        echo error($msg);
    } else {
        include(__DIR__ . '/db_config.php');
        $answ = DBConnect();
        if ($answ['result'] != 'ok') {
            echo json_encode($answ);
        } else {
            $q = $DB->query(
                "SELECT * FROM cs_users " .
                "WHERE email=\"{$_POST['email']}\" " .
                "and pass=\"" . md5($_POST['pass'] . SALT) .'"'
            );
            if ($q->num_rows !== 0) {
                $_SESSION['authorized'] = true;
                $i = $q->fetch_assoc();
                $_SESSION['userID'] = $i['userID'];
                $_SESSION['name'] = $i['name'];
                $_SESSION['email'] = $i['email'];
                $_SESSION['date'] = $i['date'];
                $_SESSION['avatar'] = $i['avatar'];
                echo json_encode([
                    'result' => 'ok'
                ]);
            } else {
                echo error("Неверные имя и/или пароль.\n");
            }
            $q->free_result();
        }
    }
}


<?php
    if (isset($_SESSION['authorized']) && $_SESSION['authorized'] === true) {
?>
                <div class="header-auth">
                    <img class="header-auth__photo" src="<?=$_SESSION['avatar'];?>" alt="Пользователь">
                    <div class="header-auth-ab">
                        <span class="header-auth-ab__name"><?=$_SESSION['name'];?></span>
                        <img src="img/lk/out.svg" alt="">
                        <a href="profile.php" class="header-auth-ab__lk">Личный кабинет</a>
                    </div>
                </div>
<?php
} else {
?>

                <div class="header-auth">
                    <div class="header-auth__login">Вход</div>
                    <div class="header-auth__signup">Регистрация</div>
                </div>
<?php
}
?>
  • Вопрос задан
  • 679 просмотров
Решения вопроса 1
Nolis
@Nolis Автор вопроса
it-гопник
Проблема была в лишнем пробеле, в самом начале login.php
Попробуйте удалить все имеющиеся пробелы и сохранить файл в UTF-8 without BOM.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
В браузере в Web Developer Tools посмотри на вкладке Network, что же именно передаётся из формы логина на сервер, и что прилетает с сервера в ответ. Видимо там прилетает совсем _НЕ_ 'ok' в формате JSON.
Ответ написан
Комментировать
@PavelFokeev
pavl1k.ru
А вы сессию запустили? session_start();

А нет ли перед запуском сессии символа BOM?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы