我正在研究将memcached用作基于CodeIgniter构建的系统的session存储的可能性。以前有没有人这样做过(这可能是一个愚蠢的问题:)如果是的话,你们的经验是什么?您是否使用过任何现有的库/扩展?就性能改进而言,您看到了什么?有什么注意事项吗? 最佳答案 让PHP直接将session放入Memcache,而不是通过框架代码,这很容易-只需更改PHP.ini中的两行:#seehttp://php.net/manual/en/memcache.ini.phpsession.save_handler=memcachesess
我正在Codeigniter上开发一个网站(带有购物车),并希望使用sess_use_database设置来让用户更难破解购物车session。我还想使用数据库缓存来加速常见的数据库请求(例如“获取类别”,因为大多数数据库内容不会定期更改),所以我启用了此设置:$db['development']['cache_on']=TRUE;//where'development'ismyenvironment因此,我发现session内容没有被刷新,例如在这个请求中:$this->basket_contents=array_values($this->session->userdata('ba
在安全连接下关闭PHP中的“session.cookie_secure”有哪些安全风险?我很想关闭它,因为我无法访问从https页面到http页面的session数据。 最佳答案 风险在于cookie数据是通过纯HTTP传输的。任何在网络上嗅探数据包的人都可以查看cookie中的数据。然后,他们可以假装是你(SessionFixation)。现在,有些人会争辩说,如果有人可以嗅探网络上的数据包,那么他们就可以执行MITM。攻击所以这不是什么大不了的事。然而,这并非100%正确。看看谷歌发生了什么。他们能够嗅探原始WIFI流量,而不会
我成功地使用FacebookSDK(PHP)将用户连接到我的网站,但是当他们验证他们的帐户时我遇到了问题。他们的帐户已成功通过身份验证,但由于某种原因,我网站的session已被清除。流程:用户登录我的网站(本地用户名和密码)用户在弹出窗口中连接到FacebookFacebook对用户进行身份验证并返回我的网站我的站点session现在无效(在弹出窗口和主窗口中)导致用户注销我使用的是FacebookSDK(PHP),我的网站使用的是CakePHP框架任何帮助将不胜感激。 最佳答案 我不能告诉你什么正在删除你的session,但你可
如果您没有代理IP列表会怎样?使用Akamai、Google、Edgecast或CloudFront等站点加速服务时;从他们那里获取session的IP总是很困难。在CDN上测试我们的codeigniter应用程序时,我们注意到IP作为CDNIP而不是session数据库中的客户端IP传递。你怎么能解决这个问题?/*|--------------------------------------------------------------------------|ReverseProxyIPs|---------------------------------------------
我使用codeigniter2.1.0为客户开发电子商务网站。该站点已经正常运行了大约3个月,然后突然间,登录不可用,session数据未设置。我检查了数据库,发现每次加载页面时都会创建一个新session。这是我的配置值$config['sess_cookie_name']='myu';$config['sess_expiration']=7200;$config['sess_expire_on_close']=FALSE;$config['sess_encrypt_cookie']=FALSE;$config['sess_use_database']=TRUE;$config['s
我想在我的网站中使用session,但我找不到最好的方式来存储它们,codeigniter提供文件,数据库等等。但哪个最好??我使用这个配置的文件:$config['sess_driver']='files';$config['sess_cookie_name']='ci_session';$config['sess_expiration']=0;$config['sess_save_path']='_s';$config['sess_match_ip']=FALSE;$config['sess_time_to_update']=0;$config['sess_regenerate_d
我正在尝试在用户session超时时注销用户。注销用户-在我的例子中-需要修改用户在数据库中的“在线”状态。我在想我也许可以使用观察者模式来制作一些东西来监视用户session的状态并在session过期时触发回调-这将保留用户名以便我们可以更新数据库。我不确定在session端从哪里开始。我可以将回调绑定(bind)到session超时吗?这些东西是否内置于任何可用的pear或zendsession包中?我会尽我所能来实现这一目标!更新@16:33:如果你有一个用户可以相互交互的系统(但他们只能与在线用户交互)怎么办?用户需要知道当前还有哪些其他用户在线。如果我们只是在每次页面刷新时
每次我访问$_SESSION中的数据时,它是立即更新磁盘上的session文件,还是仅在进程停止时更新一次?或者每n个字节的数据变化(刷新)?这个问题不一定是关于具体的文件session处理程序,而是每一个处理程序。(除了在内存中存储普通变量之外,session中的每次触摸都会立即调用任何类型的I/O)。 最佳答案 正如Matt所写,它默认在脚本执行结束时写入。您可以在此处阅读session_write_close()Sessiondataisusuallystoredafteryourscriptterminatedwithout
嗯,这听起来可能有点奇怪。我们在特定条件下遇到特定浏览器的一些问题,最终将问题缩小到我们在执行session_regenerate_id()后没有正确销毁旧session这一事实。我相信我现在已经通过执行session_regenerate_id(true)解决了这个问题,但是如何验证以前的session真的不再存在了?有人建议使用cURL,但我找不到他们的文档。可悲的是(?)老板不接受“它只是有效”的答案,所以我非常感谢任何建议! 最佳答案 默认情况下session_regenerate_id();只会用一个新session替换当