Сброс сеанса PHP при каждом запросе ⇐ Php
-
Гость
Сброс сеанса PHP при каждом запросе
Прошло несколько дней с тех пор, как я пытался получить эту работу. У меня проблема с сеансами PHP. Сервер — nginx. У меня есть три подкаталога (субдомена):
[*]app.dev/ (есть интерфейс, какой клиент посещает) [*]backend.app.dev/ (php-страница, которая обрабатывает запросы AJAX и взаимодействует с API) [*]api.app.dev/ (API)
В app.dev/ есть папка template/, содержащая файлы PHP, такие как формы, заголовок и части сайта, которые заполняются в зависимости от данных сеанса. Он загружается на страницу index.html с помощью функции jQuery.load().
На backend.app.dev/ есть файл page.php, который обрабатывает данные и отправляет их в API.
И затем, когда я отправляю запрос AJAX при действии входа в систему и после того, как я получаю токен от API, мне нужно сохранить его в сеансе на page.php. По этому запросу он сохраняет его успешным, но когда я отправляю второй запрос, который проверяет наличие токена в сеансе, он говорит, что сеанс пуст. Я попытался напечатать всю переменную $_SESSION, но она пуста. $_COOKIE также. Таким образом, сеанс закрывается после каждого запроса. Я много гуглил. Я попробовал много решений (я опубликую журнал решений, которые я пробовал). И я обнаружил, что после каждого запроса в /var/lib/php/sessions создаются файлы.
Я пытался печатать идентификатор сеанса при каждом запросе, и он всегда разный...
Из файла журнала отправьте один и тот же запрос несколько раз:
[28.сен.2017 04:39:12]: идентификатор сеанса: c0556q1s47kger3l53tgrdadhu [28.Сент.2017 04:39:29]: идентификатор сессии: 83nmqq1l9d27v7jhh7748gq2ru [28.Сент.2017 04:39:33]: идентификатор сеанса: ece5as0eb0egoolun8u9s0duqi Есть журнал того, что я пробовал:
//session_name("backend"); //session_set_cookie_params(0, '/', '.dev'); //session_start(); //имя_сессии('бэкэнд'); //ini_set('session.cookie_domain', 'hr.dev'); //ini_set('session.save_path', '/var/lib/php/session'); //ini_set('session.cookie_domain', substr($_SERVER['SERVER_NAME'],strpos($_SERVER['SERVER_NAME'],"."),100)); //session_start(); //имя_сессии("все"); //$sess_life_time = 21600; //в секундах //$sess_path = "/"; //$sess_domain = ".dev"; //$sess_secure = правда; // если у вас защищенный сеанс //$sess_httponly = правда; // флаг httponly //ini_set('suhosin.session.cryptdocroot', 'выкл'); //ini_set('suhosin.cookie.cryptdocroot', 'выкл'); //session_set_cookie_params($sess_life_time, $sess_path, $sess_domain, $sess_secure, $sess_httponly); //имя_сессии("все"); //ini_set("session.cokie_domain",".dev"); //session_set_cookie_params(0, '/', '.dev'); //session_start(); // имя_сессии("мойсессион"); // session_set_cookie_params(0,"/",".dev",FALSE,FALSE); // setcookie(session_name(), session_id(),0,"/",".dev"); // session_start(); В чем может быть проблема? Что-то не хватает в конфигурации сервера?
Я буду очень, очень благодарен, если мы исправим это как можно скорее.
РЕДАКТИРОВАТЬ:
Я установил переменные сеанса (начало сеанса) в backend.app.dev/
РЕДАКТИРОВАНИЕ 2:
Существует информация php.ini:
session.auto_start => Выкл. => Выкл. session.cache_expire => 180 => 180 session.cache_limiter => nocache => nocache session.cookie_domain => нет значения => нет значения session.cookie_httponly => Выкл. => Выкл. session.cookie_lifetime => 0 => 0 session.cookie_path => / => / session.cookie_secure => Выкл. => Выкл. session.gc_divisor => 1000 => 1000 session.gc_maxlifetime => 1440 => 1440 session.gc_probability => 0 => 0 session.lazy_write => Включено => Включено session.name => PHPSESSID => PHPSESSID session.referer_check => нет значения => нет значения session.save_handler => файлы => файлы session.save_path => /var/lib/php/sessions => /var/lib/php/sessions session.serialize_handler => php => php session.sid_bits_per_character => 5 => 5 session.sid_length => 26 => 26 session.upload_progress.cleanup => Включено => Включено session.upload_progress.enabled => Включено => Включено session.upload_progress.freq => 1% => 1% session.upload_progress.min_freq => 1 => 1 session.upload_progress.name => PHP_SESSION_UPLOAD_PROGRESS => PHP_SESSION_UPLOAD_PROGRESS session.upload_progress.prefix => upload_progress_ => upload_progress_ session.use_cookies => Включено => Включено session.use_only_cookies => Включено => Включено session.use_strict_mode => Выкл. => Выкл. session.use_trans_sid => 0 => 0
Прошло несколько дней с тех пор, как я пытался получить эту работу. У меня проблема с сеансами PHP. Сервер — nginx. У меня есть три подкаталога (субдомена):
[*]app.dev/ (есть интерфейс, какой клиент посещает) [*]backend.app.dev/ (php-страница, которая обрабатывает запросы AJAX и взаимодействует с API) [*]api.app.dev/ (API)
В app.dev/ есть папка template/, содержащая файлы PHP, такие как формы, заголовок и части сайта, которые заполняются в зависимости от данных сеанса. Он загружается на страницу index.html с помощью функции jQuery.load().
На backend.app.dev/ есть файл page.php, который обрабатывает данные и отправляет их в API.
И затем, когда я отправляю запрос AJAX при действии входа в систему и после того, как я получаю токен от API, мне нужно сохранить его в сеансе на page.php. По этому запросу он сохраняет его успешным, но когда я отправляю второй запрос, который проверяет наличие токена в сеансе, он говорит, что сеанс пуст. Я попытался напечатать всю переменную $_SESSION, но она пуста. $_COOKIE также. Таким образом, сеанс закрывается после каждого запроса. Я много гуглил. Я попробовал много решений (я опубликую журнал решений, которые я пробовал). И я обнаружил, что после каждого запроса в /var/lib/php/sessions создаются файлы.
Я пытался печатать идентификатор сеанса при каждом запросе, и он всегда разный...
Из файла журнала отправьте один и тот же запрос несколько раз:
[28.сен.2017 04:39:12]: идентификатор сеанса: c0556q1s47kger3l53tgrdadhu [28.Сент.2017 04:39:29]: идентификатор сессии: 83nmqq1l9d27v7jhh7748gq2ru [28.Сент.2017 04:39:33]: идентификатор сеанса: ece5as0eb0egoolun8u9s0duqi Есть журнал того, что я пробовал:
//session_name("backend"); //session_set_cookie_params(0, '/', '.dev'); //session_start(); //имя_сессии('бэкэнд'); //ini_set('session.cookie_domain', 'hr.dev'); //ini_set('session.save_path', '/var/lib/php/session'); //ini_set('session.cookie_domain', substr($_SERVER['SERVER_NAME'],strpos($_SERVER['SERVER_NAME'],"."),100)); //session_start(); //имя_сессии("все"); //$sess_life_time = 21600; //в секундах //$sess_path = "/"; //$sess_domain = ".dev"; //$sess_secure = правда; // если у вас защищенный сеанс //$sess_httponly = правда; // флаг httponly //ini_set('suhosin.session.cryptdocroot', 'выкл'); //ini_set('suhosin.cookie.cryptdocroot', 'выкл'); //session_set_cookie_params($sess_life_time, $sess_path, $sess_domain, $sess_secure, $sess_httponly); //имя_сессии("все"); //ini_set("session.cokie_domain",".dev"); //session_set_cookie_params(0, '/', '.dev'); //session_start(); // имя_сессии("мойсессион"); // session_set_cookie_params(0,"/",".dev",FALSE,FALSE); // setcookie(session_name(), session_id(),0,"/",".dev"); // session_start(); В чем может быть проблема? Что-то не хватает в конфигурации сервера?
Я буду очень, очень благодарен, если мы исправим это как можно скорее.
РЕДАКТИРОВАТЬ:
Я установил переменные сеанса (начало сеанса) в backend.app.dev/
РЕДАКТИРОВАНИЕ 2:
Существует информация php.ini:
session.auto_start => Выкл. => Выкл. session.cache_expire => 180 => 180 session.cache_limiter => nocache => nocache session.cookie_domain => нет значения => нет значения session.cookie_httponly => Выкл. => Выкл. session.cookie_lifetime => 0 => 0 session.cookie_path => / => / session.cookie_secure => Выкл. => Выкл. session.gc_divisor => 1000 => 1000 session.gc_maxlifetime => 1440 => 1440 session.gc_probability => 0 => 0 session.lazy_write => Включено => Включено session.name => PHPSESSID => PHPSESSID session.referer_check => нет значения => нет значения session.save_handler => файлы => файлы session.save_path => /var/lib/php/sessions => /var/lib/php/sessions session.serialize_handler => php => php session.sid_bits_per_character => 5 => 5 session.sid_length => 26 => 26 session.upload_progress.cleanup => Включено => Включено session.upload_progress.enabled => Включено => Включено session.upload_progress.freq => 1% => 1% session.upload_progress.min_freq => 1 => 1 session.upload_progress.name => PHP_SESSION_UPLOAD_PROGRESS => PHP_SESSION_UPLOAD_PROGRESS session.upload_progress.prefix => upload_progress_ => upload_progress_ session.use_cookies => Включено => Включено session.use_only_cookies => Включено => Включено session.use_strict_mode => Выкл. => Выкл. session.use_trans_sid => 0 => 0
Мобильная версия