繁体   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