簡體   English   中英

PHP會話鎖定並使用Memcache存儲會話

[英]PHP session locking and using Memcache to store sessions

我有一個帶有一些img標記的標准html頁面,每個標記都指向我們服務器上的php文件。 加載php文件后,它將保存一些數據到會話,然后再生成映像。

來自每個腳本的會話中的數據然后在我們的應用程序中的其他腳本中進一步使用。

用於生成圖像的php文件以session_start開頭,當使用本機PHP會話處理程序時,一切似乎都很好用。 每次執行均正確完成,並且可以檢索完整的會話數據。

如果啟用內存緩存以保存會話,則開始出現問題。 似乎每個PHP腳本都是在同一時間執行的,因此當保存到會話中時,只有最后一個要執行的實際上存儲了任何數據。

經過對Memcache的進一步調查后,我發現最新的穩定版本不支持會話鎖定,只有在3.0.4中才引入此功能-http: //pecl.php.net/package/memcache/3.0.4

僅在Beta中使用3.0.4是否安全?

在2.2.7中是否有其他替代方法或解決此問題的方法?

如果您想查看代碼示例,請告訴我。

謝謝。

php-memcached擴展支持會話鎖定

http://us3.php.net/memcached

http://us1.php.net/manual/en/memcached.sessions.php

memcache和memcached擴展在語法上看起來相似,因此嘗試一下可能不會太麻煩。 (memcached具有2012-08-07發行的穩定版本2.1.0)。


如果您設置使用memcache 2.2.7,則您很可能必須自己實現鎖定,方法是在會話中設置一些“ session_is_locked”變量,然后在腳本寫入會話后將其釋放/取消設置。 然后,在繼續執行任何寫入會話的腳本之前,您始終需要檢查該變量是否已設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM