它不是跨域的。 我的網站包含php和django,我在php中寫了一個會話,但我想在django中讀取它,我該怎麼做?如何在django中獲取在php中創建的會話?
回答
首先,瞭解how PHP sessions work。
要從Django訪問PHP的會話數據,您需要會話ID &您需要訪問會話數據存儲的任何位置。
要獲取會話ID,請從cookie中檢索它; cookie名稱應設置爲PHP的session.name
設置的值。在Django中,您可以使用request.COOKIES.get('<value of PHP's session.name setting>')
從cookie中獲取會話ID。顯然,如果你不依賴cookies來維護會話數據,那麼你需要採取不同的方法來處理這個組件。
要訪問數據,它會變得更復雜一點:您需要知道會話數據的存儲位置(PHP默認將其存儲在文件中)以及將其轉換爲有意義的python對象的方式。
要找出數據的存儲位置,請使用PHP的session_save_path()
函數來獲取配置設置的值。如果您正確評估這一點,您將能夠獲取存儲會話文件的目錄。但是,如果會話數據文件不明顯基於session_ids(我沒有PHP安裝方便檢查),那麼您可能需要編寫自己的SessionHandler
並將其註冊爲set_session_save_handler()
,以便您知道哪些文件對應向哪個會話ID發送。
一旦您知道哪個會話數據對應於每個會話ID,您可以使用python標準庫函數從文件中加載&保存數據到&。不幸的是,我無法找到一種簡潔的方式來解析PHP的標準會話序列化格式(由session.serialize_handler
定義),因爲它不符合我所知的任何標準格式,但格式看起來並不複雜。
例如,基於this discussion,如果pr($_SESSION);
給
Array
(
[Config] => Array
(
[rand] => 1482441247
[time] => 1179248446
[userAgent] => cc98eaffc23c634e0efd75ab9e36e810
)
)
那麼會話內容
Config|a:3:{s:4:"rand";i:1482441247;s:4:"time";i:1179247983;s:
9:"userAgent";s:32:"cc98eaffc23c634e0efd75ab9e36e810";}
你可以看到,它是說,有一個叫Config
變量,它是類型數組長度爲3,數組內容由下列組成:
- 字符串長度4值
rand
的這對的值的整數的關鍵1482441247
- 長度4值
time
的字符串,它是用於值與值userAgent
- 長度9的字符串的整數,其是一個關鍵對於長度爲32的字符串與價值的關鍵
cc98eaffc23c634e0efd75ab9e36e810
所以用一個小實驗,你應該能夠編寫一些Python模塊採取Cookie數據並將其轉換爲包含類型的字典&其他標準Python數據的Python列表對象。
免責聲明:這是全部基於研究;我自己沒有嘗試過,所以編輯&的意見是值得歡迎的,並且一如既往,任何downvotes的原因非常感謝。
- 1. 在Django中創建會話
- 2. 在Django中禁用會話創建
- 3. 在Django中獲取會話數據SessionWizardView
- 4. 如何在django中創建我自己的會話表
- 5. Php不在webmatrix中創建會話
- 6. 如何在Django的登錄處理中獲取用戶會話?
- 7. 如何在ZF2中創建會話
- 8. 如何在Spring Junit中創建會話
- 9. 如何在Catalyst中創建會話?
- 10. 如何在web2py中創建Auth會話?
- 11. 如何在odata中創建會話?
- 12. 會話如何在JSP中創建?
- 13. 如何在angualr2中創建新會話
- 14. 如何在Swift中創建QuickBlox會話
- 15. 創建Django會話
- 16. Django創建會話
- 17. 如何在PHP中讀取ASP會話
- 18. 在php中獲取會話屬性
- 19. 在php頁面中獲取會話
- 20. 如何在Django中獲取會話數據?
- 21. 如何獲取會話在Global.asax中
- 22. 在C#中創建會話#
- 23. 如何在PHP的子域中獲取會話變量
- 24. 如何在httphandler中創建會話時在代碼文件中獲取會話值
- 25. 如何創建會話並在會話中設置UserBean
- 26. 如何在jsp中創建會話對象和會話變量?
- 27. 如何在PHP中創建持久會話?
- 28. 如何在php中使用mongodb創建會話
- 29. 如何在mediawiki API中使用php curl創建會話
- 30. 如何在php中使用會話創建購物車?