Вы спрашиваете, что происходит - и я не могу вам этого сказать, не увидев ваш код. Вот то, что я ожидал бы случиться.
Ваша домашняя страница (index.php) может включать в себя форму, содержащую имя пользователя, поля пароля и кнопку для отправки формы. Index.php может содержать только экран входа в систему, или форма может быть небольшим вариантом на стороне.
а) Пользователь вводит свое имя пользователя и пароль и нажимает кнопку входа. Затем данные отправляются на сервер по URL-адресу, указанному в теге формы.
b) Этот php-скрипт проверяет имя пользователя и пароль (при этом соблюдайте осторожность при шифровании пароля
перед поиском записи пользователя в базе данных, чтобы пароль не хранился в виде простого текста).
в) Если пользователь и пароль приемлемы, переменные сеанса сохраняются, и создается экран «Пуск». Если нет, экран входа в систему генерируется снова, с сообщением об ошибке (которое не признает, что это неправильно).
d) Поскольку код существует, сеанс сохраняется, и сгенерированный экран отправляется в браузер (автоматически).
e) Все страницы, которые должны быть защищены входом в систему, должны выполнить session_start () и представить экран входа в систему, если флаг logged_in не установлен. Простой способ сделать это - перенаправить на домашнюю страницу.
Не используйте AJAX для обработки экрана входа в систему, потому что вам нужно показать другой экран, если проверка не удалась, когда она прошла успешно. AJAX будет означать, что вы должны были уже отправить защищенный паролем экран пользователю, прежде чем он войдет в систему, и это плохая идея. Для входа AJAX вам ничего не даст.
Когда AJAX полезен, вам нужно отправить данные на сервер для хранения в случае сбоя клиента. AJAX также полезен, когда клиенту нужны дополнительные данные после ввода данных пользователем. Например, при оформлении заказа пользователь вводит свою страну, а затем страница получает почтовые расходы с использованием AJAX.