не может заставить $ _SESSION php работать на моей локальной машине
он отлично работает на живом сервере, но не работает на локальной машине
Я пытался с Apache иphp на windows, apache и php на mac и apache и php на debian, ни один из них не работает (мой живой сервер также работает под управлением Debian 9, тот же, который я пробовал локально)
в инструментах разработчика firefox> сеть> заголовки я вижу, что php отправляет set-cookie, но по какой-то причине он не устанавливается (нет файлов cookie в хранилище> cookie, и мой сценарий не работает так, как должно быть при установке cookie)
я не использую ssl / https, и я установил "session.cookie_secure = 0 and off", но по какой-то причине так выглядит заголовок set-cookie: "Set-Cookie: PHPSESSID = XXXXX; path = /; HttpOnly; Secure ", я не думаю, что php должен устанавливать флаг Secure, поскольку я явно отключил его в php.ini?
и да, каждый файл, который использует функциональность сеанса, содержит session_start () в нем
нет никаких ошибок apache / php, у меня даже включен xdebug
протестирован с использованиемlocalhost, 127.0.0.1, 10.0.0.10 (мой локальный ip) и пользовательское имя хоста, ни один не работает
У меня нет идей, я попробовал все, что мог придумать
, работает вживуюСервер Debian 9 с php 7.2 и конфигурацией по умолчанию
не работает на локальном сервере Debian 9 с php 7.2 и конфигурацией по умолчанию
не работает на окнах с теми же версиями apache / php
не работает на Mac с apache 2.4 и php 7.3, даже с параметром session.cookie_secure = 0 установлено
проверено на наличие ошибок apache и php, нет ни одного
использовал инструменты разработчика firefox, чтобы увидеть заголовки / файлы cookie
проверил мой код и удостоверился, что он имеет session_start (), а все остальное правильно
я даже пытался вручную установить cookie с флагом безопасностиустановлен на false и снова "Secure" устанавливается в заголовке Set-Cookie, это был код:
setcookie("PHPSESSID", "7nhqdim7uu2viae7vhhf9os5ue", 0, "/", "", false, false);
и вот код, который я использую для тестирования:
<?php
session_start();
var_dump($_SESSION);
if(isset($_POST['submit']))
{
$_SESSION['value'] = $_POST['example'];
header('Location: /session.php'); // session.php is this file
}
if(isset($_SESSION['value']) && $_SESSION['value'] == 'example')
{
echo "value is " . $_SESSION['value'] . '<br>';
}
?>
<form method="post">
<input type="text" name="example" value="example">
<input type="submit" name="submit" value="submit">
</form>