Intereting Posts
Как переписывать URL в PHP? Отправка заголовка Soap с помощью WSDL Soap Request с PHP Создание единого случайного купона Magento php – Получить сжатое содержимое с помощью cURL Как создать несколько функций с переменной по имени? Laravel – Использование (: any?) Шаблона для ВСЕХ маршрутов? PHP отображает изображение BLOB из MySQL Получить определенный дочерний тег из DOMElement в PHP Как вы предлагаете пользователям уникальные имена пользователей в PHP? Вызов программы через shell_exec с использованием ввода текста utf-8 Автоматическая таблица обновления без обновления страницы PHP MySQL Отменить все переменные в скрипте PHP Укажите проверку валидатора для изображений, созданных функциями imagejpeg / imagepng. Facebook SDK вернул ошибку: проверка подделки на основе перекрестного запроса не удалась. Параметр «состояние» из URL-адреса и сеанса не соответствует «Нет приемлемого варианта» из MultiViews в Apache

PHP – вход в скрипт, не создающий сеансы

У меня есть сценарий входа в систему, где я смог успешно сделать пользователей и войти в систему. Теперь моя проблема в том, что всякий раз, когда я пытаюсь использовать мой метод защиты страниц, я вижу, есть ли СЕССИЯ для пользователя, если нет перенаправляет вас на страницу входа.

Здесь я проверяю сессию,

require("common.php"); if(empty($_SESSION['user'])) { header("Location: login"); die("Redirecting to login"); } 

Здесь я устанавливаю свою сессию, я ТОЛЬКО устанавливаю session_start (); на login.php

 if($login_ok) { unset($row['salt']); unset($row['password']); $_SESSION['user'] = $row; header("Location: home?worked=1"); die("Redirecting to: home?worked=1"); session_start(); } else { print("Login Failed."); $submitted_username = htmlentities($_POST['username'], ENT_QUOTES, 'UTF-8'); } } с if($login_ok) { unset($row['salt']); unset($row['password']); $_SESSION['user'] = $row; header("Location: home?worked=1"); die("Redirecting to: home?worked=1"); session_start(); } else { print("Login Failed."); $submitted_username = htmlentities($_POST['username'], ENT_QUOTES, 'UTF-8'); } } с if($login_ok) { unset($row['salt']); unset($row['password']); $_SESSION['user'] = $row; header("Location: home?worked=1"); die("Redirecting to: home?worked=1"); session_start(); } else { print("Login Failed."); $submitted_username = htmlentities($_POST['username'], ENT_QUOTES, 'UTF-8'); } } 

Что я делаю, я вхожу в систему, и он будет обрабатывать и выводить меня на мою домашнюю страницу, а затем обрабатывать заголовок обратно на страницу входа, действуя так, как будто я не вошел в систему. Я протестировал ложный логин, и он говорит, что его правильный логин.

Спасибо за любую помощь, я вытаскиваю свои волосы здесь!

Некро

РЕДАКТИРОВАТЬ

Я переместил session_start (); на вершине моего common.php, и все идеально.

Solutions Collecting From Web of "PHP – вход в скрипт, не создающий сеансы"

У вас есть session_start(); после $_SESSION['user'] = $row; На самом деле у вас есть это после die(); команда. После этого ничего не происходит.

Поместите session_start(); в верхней части PHP на каждой странице (pref common.php, так как у вас есть), а не только на одной странице.

Было бы лучше установить session_start() сверху

Вам нужно поставить session_start (); на каждой странице, которую вы хотите использовать в сеансе.