为什么它被设置已经被重定向后,由JavaScript
我有两个页面是skytrip.localhost/SearchResult所和skytrip.localhost/bookingInfo为什么它被设置已经被重定向后,由JavaScript
在页面SearchResult所,我让Ajax请求失去了PHP会话变种,那么它是重定向到pageInfo。在ajax请求中,我设置了一个sesion值,然后我想在页面bookingInfo中获取此值。但我无法得到这个价值。当我转储$ _SESSION时,我发现这个值没有被设置,并且属于这个值的session var不存在,但是其他以前的会话值已经被看到。
Ajax请求调用PHP代码,并设值为会话
$session->set(Fly_Constant::SESSION_BOOK_PRICE_VERIFIED_SOLUTION_PARAMETER, "yunuz");
响应后,重定向到页面bookingInfo
window.location.href = PageInitialData.BASE_URL +"bookingInfo";
我试图让这个值
$bookPriceVerifyResponse = $session->get(Fly_Constant::SESSION_BOOK_PRICE_VERIFIED_SOLUTION_PARAMETER,1800);
如果您不要使用框架会话机制,请确保您在使用$ _SESSION之前先有session_start()调用,否则这些数据将会丢失。
非常感谢你的有趣的。当我看到previoust会话值时,我看不到会话var /值设置最后一个重定向。虽然我看到这个值$ _SESSION之前重定向,在重定向之后,我在$ _SESSION中看不到这个值 –
只需要尝试一下答案就可以看到,你需要调用session_start()来加载和保存页面之间的会话信息,否则S_SESSION会 – GolezTrol
是的,我发现问题,问题是如果$ _SESSION没有设置,我会调用session_start,但是在将该值设置为session之前,我在其他函数中调用了session_write_close,在这种情况下,会话不存在,$ _SESSION不是empy。因为session不存在,所以会出现这个问题。为了解决这个问题,我在session_status()时调用了session_start()!== PHP_SES SION_ACTIVE。 –
尝试完整的URL和相对URL在您的重定向,如果我记住正确,也会影响SESSION。
您使用的是什么CI版本? – Nassim
CI版本是2.1.3 –
我不知道CI3,但关于CI2.x该会话是越野车,并没有安全(它使用cookie来保存会话数据),所以我使用这个会话扩展,而不是它做得很好https ://github.com/bcit-ci/CodeIgniter/wiki/EckoSession希望帮助 – Nassim