Мне нравится этот сайт, способный найти ответы на все мои вопросы до сих пор.Laravel 5 Сессия не сохраняется достоверно
У меня есть два транзакции Ajax здесь, где в первой транзакции введенные значения помещаются в сеанс, вторая транзакция извлекает введенные значения и предыдущие значения транзакций, чтобы знать, как действовать. Это утверждение не кажется надежным, но оно работает лучше, чем 90% времени. Почему это не надежно? Транзакция завершается успешно, и экран выглядит правильно отформатированным.
Session::put('previous', serialize($entry));
Пример транзакции A; Пользователь просматривает пункт СКП, сделка идентифицирует БЗК 0587, как правильно, создает $ запись, и отвечает обратно пользователю «Пожалуйста, поставьте 0587 в тотализатор 3334»
$entry = (object) ['type' => 'UPC', 'text' => '0587'];
Session::put('previous', serialize($entry));
Пример транзакции B; пользователей просматривает тотализатор, транзакция идентифицирует тотализатор 3334, как правильно, а затем запрашивает предыдущей записи транзакции
$previous = (object) unserialize(Session::get('previous', self::UNKNOWN_SERIAL));
Лучше, чем 90% времени $ предыдущий равно, что мы хотим (БЗК, 0587). Иногда $ previous равно значениям из предыдущей транзакции до транзакции A. $ previous будет равно self :: UNKNOWN_SERIAL для первой транзакции после входа в систему.
Почему Session: put (..) выглядит ненадежным?
Любая помощь будет оценена по достоинству.
Можете ли вы поделиться некоторыми сведениями о A) вашей инфраструктуре сервера и B), какой драйвер сеанса вы используете? – mopo922
Да, пример выше произошел на моем сайте разработки, Ubuntu 14.04.2 LTS, версия сервера: Apache/2.4.7 (Ubuntu). Что касается драйвера сеанса, в .env SESSION_DRIVER = файл, в config/session.php 'driver' => env ('SESSION_DRIVER', 'file'), 'lifetime' => 120, 'expire_on_close' => true, 'encrypt '=> false, –
Только один сервер? – mopo922