thinkphp 5.0这个坑大家小心避开
我是从来不用UC的,今天没事下个UC试了一下,死活都出现变量错误苹果版UC发送的头部标签HTTP_ACCEPT_LANGUAGE是空的
而thinkphp的lang.php文件中有段断码
在201至204行之间
} elseif (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
// 自动侦测浏览器语言
preg_match('/^(+)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches);
$langSet = $matches
;
看出问题了没?
isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])这个肯定是存在的,但是UC发的这个是空的
后面thinkphp直接用$matches这就很不合理了,怎么的也要判断一下$matches吧
$matches这个数组很可能就是空的,然后这$matches玩意就下标越界
改成
$langSet = (isset($matches)&&!empty($matches)) ? strtolower($matches) : 'zh-cn';
另外 THINKPHP的错误模板文件中如果也有这玩意,也一并改一下。
5.0以后的版本有没有我不清楚
辣鸡玩意 帝国 wordpress已经就够了。 这个就不懂了,还没试过 uc浏览器?
eltonto 发表于 2021-3-23 12:19
uc浏览器?
IOS端的UC ,安卓端的不清楚 你喷错对象了,应该喷UC垃圾,不按规则。
其次才是喷TP,代码不严谨。
其实后面还有更大的隐患,那就是:
以chrome为首的大佬们,要干掉UA,那以后依赖UA的东东,就全部会出问题:ohh::ohh::ohh: 哈哈现在很少用了吧 Google_Adsense 发表于 2021-3-23 13:12
你喷错对象了,应该喷UC垃圾,不按规则。
其次才是喷TP,代码不严谨。
其实后面还有更大的隐患,那就是: ...
如果干掉ua怎么判断用户是什么浏览器呢
当然现在ua伪造的也挺多哈哈
天上人间 发表于 2021-3-23 13:00
IOS端的UC ,安卓端的不清楚
安卓的uc可以自己选ua,印象里。
为什么要用UC,全是广告
页:
[1]