BillGe

Results 92 comments of BillGe

可以使用sql模版实现自定义计算后的字段orderby排序的逻辑,但不建议这么做,不命中索引的sql语句执行是非常慢的,建议脚本计算下积分再入库根据积分进行排序

`select (click*2+mark+collection*2) as score from xxxxx where xxxxx order by score desc`

@3DMXM 刚想了下 其实按你的逻辑 可以再设个积分字段,浏览时积分+1,点赞时+2,收藏时+4。本来就要更新的只是多更新个字段而已,通过计算排序性能肯定很差的哈

浏览器关闭就没了 看起来跟浏览器设置有关 是不是用了无痕模式浏览的 无痕模式下cookie会被清空,导致session重置 存cookie的话会有安全隐患的,可以只记录加密后的userid,后台解密使用

还有你如果session是存在files里的 如果你是多台服务器部署就会出现1台机器有session,另一台没有的情况 这个场景建议把session的save_handler改成redis,保持多机同步

查了浏览器sessionid机制,好像关闭后就是会失效的,如果要在关闭浏览器后仍然有效,可以存一个加密后的cookie来使用吧 附加: 当在同一个浏览器中同时打开多个标签,发送同一个请求或不同的请求,仍是同一个session; 当不在同一个窗口中打开相同的浏览器时,发送请求,仍是同一个session; 当使用不同的浏览器时,发送请求,即使发送相同的请求,是不同的session; 当把当前某个浏览器的窗口全关闭,再打开,发起相同的请求时,是不同的session。

@tianhe1986 感谢,我测试一下 加一个config配置

@3DMXM 已支持session.cookie_lifetime过期时间配置,替换 lib/data/Session.php 文件 config.php 中新增 cookie_lifetime配置即可 ``` //缓存相关配置 'cache' => array( 'pkCache' => 'tb:%s', 'session' => array( 'save_handler'=>'files', //files redis memcache 'maxlifetime' => 86400, //过期时间s 'cookie_lifetime' => 86400 //...

@3DMXM Session.php更新了 支持config设置 ``` $config = ['cookie_lifetime'=>$lifetime]; // 支持 save_handler / maxlifetime / cookie_lifetime App::$base->session->config($config)->key = $value; ``` 不过要注意 一个用户第一次生成session时候设置才有效 也就是如果已经设置了0的cookie_lifetime 后面再改成7天也是没用的 感觉php的sessionid如果生成了 过期时间这些后面不会变更 如果要满足不同用户“自动登录的需求” 可能还得借助cookie实现