2015-06-20 62 views
0

我有兩個頁面是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); 
+0

您使用的是什麼CI版本? – Nassim

+0

CI版本是2.1.3 –

+0

我不知道CI3,但關於CI2.x該會話是越野車,並沒有安全(它使用cookie來保存會話數據),所以我使用這個會話擴展,而不是它做得很好https ://github.com/bcit-ci/CodeIgniter/wiki/EckoSession希望幫助 – Nassim

回答

2

如果您不要使用框架會話機制,請確保您在使用$ _SESSION之前先有session_start()調用,否則這些數據將會丟失。

+0

非常感謝你的有趣的。當我看到previoust會話值時,我看不到會話var /值設置最後一個重定向。雖然我看到這個值$ _SESSION之前重定向,在重定向之後,我在$ _SESSION中看不到這個值 –

+0

只需要嘗試一下答案就可以看到,你需要調用session_start()來加載和保存頁面之間的會話信息,否則S_SESSION會 – GolezTrol

+0

是的,我發現問題,問題是如果$ _SESSION沒有設置,我會調用session_start,但是在將該值設置爲session之前,我在其他函數中調用了session_write_close,在這種情況下,會話不存在,$ _SESSION不是empy。因爲session不存在,所以會出現這個問題。爲了解決這個問題,我在session_status()時調用了session_start()!== PHP_SES SION_ACTIVE。 –

0

嘗試完整的URL和相對URL在您的重定向,如果我記住正確,也會影響SESSION。

相關問題