簡體   English   中英

PHP Session + Memcached =>神秘的數據格式

[英]PHP Session + Memcached => Mysterious Data Format

我已經將memcached用作session.save_handler已有一段時間了,並且一切正常。

然后我嘗試:

echo $mycache->get('memc.sess.key.o8el2bgk4k9s1mr723j1blrgs3');

來獲取一個會話,並且輸出非常奇怪(帶有108個字符的字符串):

MaiiA6iX7qlS0IZjTdr2I3w4axNTp7H2IYcH-SAficGw5ZKIcMQ0BE2kFnsm4xHMk3KAJo9kOwmRTSBOPdPAC-m5L9CkWnYPONqujt5m0c8.

此字符串的格式是什么? 對於您的信息,這是phpinfo()中的memcached配置:

  • 指令地方價值主價值
  • memcached.compression_factor 1.3 1.3
  • memcached.compression_threshold 2000 2000
  • memcached.compression_type fastlz fastlz
  • memcached.serializer php php
  • memcached.sess_binary 0 0
  • memcached.sess_lock_wait 150000 150000
  • memcached.sess_locking 1 1
  • memcached.sess_prefix memc.sess.key。 memc.sess.key。

因此應該采用以下格式:

user_name|s:5:"guest";user_id|s:1:"3";user_level|s:2:"-1";

而不是奇怪的字符串。

注意:我正在使用memcached + php-memcached。 不是內存緩存,也不是php-memcache。 謝謝。

我找到了罪魁禍首! suhosin.session.encrypt。

ps我直接從memcached獲取數據,因為我正在測試WebSocket,因此必須手動使用JS傳遞會話ID。 然后我需要自己獲取該ID的會話變量:D

PHP會話使用各自的功能進行編碼/解碼-請參見session_decode

暫無
暫無

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

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