嗨,老铁,欢迎来到我的博客!

如果觉得我的内容还不错的话,可以关注下我在 segmentfault.com 上的直播。我主要从事 PHP 和 Java 方面的开发,《深入 PHP 内核》作者之一。

[视频直播] PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路 直播中我将毫无保留的分享我这六年的全部工作经验和踩坑的故事,以及会穿插着一些面试中的 考点难点加分点

周梦康 发表于 2014-06-20 3821 次浏览 标签 : PHPCMS

第一个是缩略图上传失败

使用 firefox 上传缩略图查看网络,发生的请求是:

http://xxx.com/index.php?m=attachment&c=attachments&a=swfupload_json&aid=%3C!DOCTYPE%20html%20PUBLIC%20%22-//W3C//DTD%20XHTML%201.0%20Transitional//EN%22%20%22http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd%22%3E%3Chtml%20xmlns=%22http://www.w3.org/1999/xhtml%22%3E%3Chead%3E%3Cmeta%20http-equiv=%22Content-Type%22%20content=%22text/html;%20charset=utf-8%22%20/%3E%3Cmeta%20http-equiv=%22X-UA-Compatible%22%20content=%22IE=7%22%20/%3E%3Ctitle%3E%E6%8F%90%E7%A4%BA%E4%BF%A1%E6%81%AF%3C/title%3E%3Cstyle%20type=%22text/css%22%3E*{%20padding:0;%20margin:0;%20font-size:12px}.showMsg%20.guery%20{white-space:%20pre-wrap;%20/*%20css-3%20*/white-space:%20-moz-pre-wrap;%20/*%20Mozilla&src=%20since%201999%20*/white-space:%20-pre-wrap;%20/*%20Opera%204-6%20*/white-space:%20-o-pre-wrap;%20/*%20Opera%207%20*/word-wrap:%20break-word;%20/*%20Internet%20Explorer%205.5+%20*/}a:link&filename=a:active{color:#ff6600;text-decoration:%20underline}.showMsg{border:%201px%20solid%20#1e64c8;%20zoom:1;%20width:450px;%20height:174px;position:absolute;top:50%;left:50%;margin:-87px%200%200%20-225px}.showMsg%20h5{background-image:%20url(http://xxx.net/statics/images//msg_img/msg.png);background-repeat:%20no-repeat;%20color:#fff;%20padding-left:35px;%20height:25px;%20line-height:26px;*line-height:28px;%20overflow:hidden;%20font-size:14px;%20text-align:left}.showMsg%20.content{%20padding:46px%2012px%2010px%2045px;%20font-size:14px;%20height:66px;}.showMsg%20.bottom{%20background:#e4ecf7;%20margin:%200%201px%201px%201px;line-height:26px;%20*line-height:30px;%20height:26px;%20text-align:center}.showMsg%20.ok

使用 chrome 请求是正常的,发生的请求是:

http://xxx.com/index.php?m=attachment&c=attachments&a=swfupload_json&aid=45&src=http://xxx.com/uploadfile/2014/0621/20140621120104831.jpg&filename=331.jpg

而访问这个控制器http://xxx.com/index.php?m=attachment&c=attachments&a=swfupload_json的作用只是为上传了的图片设置cookie

明显错误是上传的时候出现了问题,和正确的返回情况对比可知返回的aid应该是附件的id,但是错误的时候应该还没走到上传那一步就直接输出一个“页面”。

原来是在./phpcms/modules/attachment/attachments.php的构造函数里面没有获取到$this->userid:

function __construct() {
	pc_base::load_app_func('global');
	$this->upload_url = pc_base::load_config('system','upload_url');
	$this->upload_path = pc_base::load_config('system','upload_path');		
	$this->imgext = array('jpg','gif','png','bmp','jpeg');
	$this->userid = $_SESSION['userid'] ? $_SESSION['userid'] : param::get_cookie('_userid');
	$this->isadmin = $this->admin_username = $_SESSION['roleid'] ? 1 : 0;
	$this->groupid = param::get_cookie('_groupid') ? param::get_cookie('_groupid') : 8;
	//判断是否登录
	if(empty($this->userid)){
		showmessage(L('please_login','','member'));
	}
}

而输出的页面也就是

showmessage(L('please_login','','member'));

的页面内容。最快捷的办法就是把这个登录的判断注释掉就OK了。但是似乎不太安全了。

第二个是编辑器里图片上传失败

原因是配置文件system.php里面与域名相关的配置不对造成的,比如你的配置文件里写的www.xx.com,如果而xx.com也能访问,使用 chrome 在xx.com域名条件下登陆上传没问题,但是使用 firefox 在xx.com域名下上传图片就会出错了。

嗨,老铁,欢迎来到我的博客!

如果觉得我的内容还不错的话,可以关注下我在 segmentfault.com 上的直播。我主要从事 PHP 和 Java 方面的开发,《深入 PHP 内核》作者之一。

[视频直播] PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路 直播中我将毫无保留的分享我这六年的全部工作经验和踩坑的故事,以及会穿插着一些面试中的 考点难点加分点

评论列表