Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么设置的php会话变量在javascript重定向后丢失_Php_Ajax_Codeigniter_Session - Fatal编程技术网

为什么设置的php会话变量在javascript重定向后丢失

为什么设置的php会话变量在javascript重定向后丢失,php,ajax,codeigniter,session,Php,Ajax,Codeigniter,Session,我有两个页面,分别是skytip.localhost/searchresults和skytip.localhost/bookininfo window.location.href = PageInitialData.BASE_URL +"bookingInfo"; 在PageSearchResults中,我发出ajax请求,然后它被重定向到PageBookingInfo。在ajax请求中,我设置了一个sesion值,然后我想在bookingInfo页面中获取该值。但是我不能得到这个值。当我转储

我有两个页面,分别是skytip.localhost/searchresults和skytip.localhost/bookininfo

window.location.href = PageInitialData.BASE_URL +"bookingInfo";
在PageSearchResults中,我发出ajax请求,然后它被重定向到PageBookingInfo。在ajax请求中,我设置了一个sesion值,然后我想在bookingInfo页面中获取该值。但是我不能得到这个值。当我转储$\u会话时,我看到没有设置此值,并且属于此值的会话变量不存在,但看到了其他以前的会话值

Ajax请求调用php代码并将值设置为session

 $session->set(Fly_Constant::SESSION_BOOK_PRICE_VERIFIED_SOLUTION_PARAMETER, "yunuz");
响应后,重定向到page bookingInfo

window.location.href = PageInitialData.BASE_URL +"bookingInfo";
我试图得到这个值

$bookPriceVerifyResponse = $session->get(Fly_Constant::SESSION_BOOK_PRICE_VERIFIED_SOLUTION_PARAMETER,1800);

如果您不使用框架会话机制,请确保在使用$\u会话之前调用了session\u start(),否则此数据将丢失。

请在重定向中尝试完整URL和相对URL,如果我没有记错的话,这也会影响会话。

您使用的是什么CI版本?我不知道CI3,但知道CI2.x会话有缺陷且不安全(它使用cookies保存会话数据),因此我使用此会话扩展,它做得很好,希望我不要使用codeigniter会话。我在会话助手中使用$\u SESSION,如果您向我们展示可能有用的会话助手,非常感谢您的关注。问题不在于会话助手。虽然我看到了以前的会话值,但我看不到在重定向之前设置了lastest的会话变量/值。虽然我在重定向之前的$\u会话中看到此值,但在重定向之后的$\u会话中看不到此值。非常感谢您的关注。虽然我看到了以前的会话值,但我看不到在重定向之前设置了lastest的会话变量/值。在重定向之前,我在$\会话中看到此值,而在重定向之后,我在$\会话中看不到此值。请尝试回答,您将看到。您需要调用session_start()以使PHP在页面之间加载和保存会话信息。如果没有它,脚本一结束S_会话就会消失。是的,我发现了问题。问题是,如果未设置$会话,我将调用会话\u start。但在将该值设置为session之前,我在其他函数中调用了session\u write\u close。在这种情况下,会话不存在,$\u会话不是empy。由于会话不存在,因此出现此问题。为了解决这个问题,我在session_status()时调用session_start()PHP_会话_处于活动状态。