Данные сеанса теряются после публикации формы с внешней веб-страницы

#php #forms #session #session-cookies #external

#php #формы #сеанс #сеанс-файлы cookie #внешний

Вопрос:

У меня есть форма, отправляющая данные на внешнюю веб-страницу с example.com чтобы externalexample.com

<form id="frmCheckout" method="post" role="form" action="https://externalexample.com/test.php">

На внешней веб-странице у меня также есть форма

<form method="post" action="https://example.com/frm.php">

Если я сделаю это быстро, мои сеансы останутся включенными mydomain.com но если я подожду примерно 2 минуты, мой сеанс будет продолжен mydomain.com .
Я также протестировал это, вместо публикации сделав прямую ссылку на mydomain.com , но тогда моя сессия остается, также тестируется метод формы GET, и моя сессия также остается включенной mydomain.com.
Таким образом, проблема возникает только после короткого ожидания и отправки формы с помощью POST.

Мой сеанс задается следующим кодом (это самый верхний код, поэтому перед session_start () вывод не выполняется

 <?php
$Lifetime = 3600;
$DirectoryPath = '/var/www/example.com/html/session';

is_dir($DirectoryPath) or mkdir($DirectoryPath, 0777);

if (ini_get("session.use_trans_sid") == true) {
    ini_set("url_rewriter.tags", "");
    ini_set("session.use_trans_sid", false);

}

ini_set("session.gc_maxlifetime", $Lifetime);
ini_set("session.gc_divisor", "1");
ini_set("session.gc_probability", "1");
ini_set("session.cookie_lifetime", $Lifetime);
ini_set("session.save_path", $DirectoryPath);


session_name('mydomain-v1');
session_start();
 

Я также пробовал без ini_set и используя сеанс по умолчанию, но это также не работает.

Комментарии:

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

2. Это происходит в Firefox, Chrome и Opera. Это обычный сеанс, который вы можете проверить в chrome dev tools в разделе Application -> Cookies. И обратите внимание, что это происходит только при отправке сообщений извне, без отправки сообщений.