请选择 进入手机版 | 继续访问电脑版

雨哲工作室

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
雨哲工作室 资料库 Discuz!X常见问题 用户头像不显示的问题分析及解决方法
  • 全部资料
  • 查看资料

用户头像不显示的问题分析及解决方法

2018-6-10 22:13|分类: Discuz!X常见问题 |发布用户: 雨哲

今天有问题问到手机版用户头像不显示,但电脑版却正常显示。经分析发现电脑用户头像是静态路径,而手机版调用的是动态路径(也没有具体分析为何手机版是动态路径)。经测试发现用户头像的动态路径跳转到静态路径的时候丢失了uc_server目录,导致头像不显示。

动态路径是:http://domain/uc_server/avatar.php?uid=1&size=middle,访问后跳转到对应的真实静态路径上。

遇到问题的用户的情况是在跳转到真实路径的时候丢失了uc_server目录,经分析动态头像文件uc_server/avatar.php,发现从x3.2开始,系统增加了一个重置处理路径的函数_get_script_url,函数完整代码如下:

function _get_script_url() {
	$scriptName = basename($_SERVER['SCRIPT_FILENAME']);
	if(basename($_SERVER['SCRIPT_NAME']) === $scriptName) {
		$_SERVER['PHP_SELF'] = $_SERVER['SCRIPT_NAME'];
	} else if(basename($_SERVER['PHP_SELF']) === $scriptName) {
		$_SERVER['PHP_SELF'] = $_SERVER['PHP_SELF'];
	} else if(isset($_SERVER['ORIG_SCRIPT_NAME']) && basename($_SERVER['ORIG_SCRIPT_NAME']) === $scriptName) {
		$_SERVER['PHP_SELF'] = $_SERVER['ORIG_SCRIPT_NAME'];
	} else if(($pos = strpos($_SERVER['PHP_SELF'],'/'.$scriptName)) !== false) {
		$_SERVER['PHP_SELF'] = substr($_SERVER['SCRIPT_NAME'],0,$pos).'/'.$scriptName;
	} else if(isset($_SERVER['DOCUMENT_ROOT']) && strpos($_SERVER['SCRIPT_FILENAME'],$_SERVER['DOCUMENT_ROOT']) === 0) {
		$_SERVER['PHP_SELF'] = str_replace('\\','/',str_replace($_SERVER['DOCUMENT_ROOT'],'',$_SERVER['SCRIPT_FILENAME']));
		$_SERVER['PHP_SELF'][0] != '/' && $_SERVER['PHP_SELF'] = '/'.$_SERVER['PHP_SELF'];
	} else {
		return false;
	}
	return $_SERVER['PHP_SELF'];
}

根据不同环境参数重新处理$_SERVER['PHP_SELF']变量的值,我也没有具体分析该用户的环境,只是直接把该函数的调用注释即解决问题。这里发出来让有同样问题的朋友作一下参考。

分享到: 手机访问 分享给QQ好友 分享到QQ 分享到QQ空间 QQ空间 分享到新浪微博 新浪微博 分享到人人 人人网

手机扫码访问

QQ|关于我们|Archiver|手机版|小黑屋|雨哲工作室

GMT+8, 2018-11-22 04:15 , Processed in 0.065450 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

返回顶部