functions.inc.php 里 base64_current_path 有bug

ltrim  这个函数的第二个参数设置不合理。
 
return base64_encode('/' . ltrim($_SERVER['REQUEST_URI'], dirname($_SERVER['PHP_SELF'])));
 
假如 dirname($_SERVER['PHP_SELF']) 里包含有 $_SERVER['REQUEST_URI'] 里的某个字符,那ltrim会把这些字符删除掉,导致网址最后无效。
 
我知道你们想去掉目录部分,但亲,真的不是这样做的。
 
-------------------
举例:
uri 是 /admin/approval/list/
dirname of php_self 是 /index.php/admin/approval
ltrim 后,就变成  st/  了。因为 list 中的 l 和 i 都包含在 php_self中。
--------------------
看手册。。。
http://php.net/manual/en/function.ltrim.php 
--------------------
我自己修复了一下,直接返回base64_encode就行了。不知道还会有哪些bug,到时候再解决。
return base64_encode($_SERVER['REQUEST_URI']);
已邀请:

lxcool - IT男

赞同来自: skyofdl

对于3.1.9后台跳转登录失败问题的解决相当有效。

final - WeCenter 官方

赞同来自:

感谢你的反馈

该问题目前已经被锁定, 无法添加新回复