时间:2019-10-07 06:00:01 来源:admin 作者:猎凡网络
我们在做phpcms仿站网站的时候,安全是我们考虑的第一要素,为了不暴露phpcms的后台地址,我们往往将phpcms后台单独绑定一个域名,但是随之问题也来了,我们在后台编辑文章上传缩略图等图片时,发现不能上传了,出现undefined上传失败错误。如下图:
我们先来分析一下导致这个错误的原因,一是在修改了域名后,在使用原域名访问后台会没有权限,那么phpcms后台上传插件中传入的仍然是包含原来域名的上传地址,于是上传访问时因没有权限而被阻止;还有可能是编辑器等查件引入的地址中域名还是原域名,与当前编辑页面的地址域名不同而导致跨域访问限制。
解决办法:对上传程序稍作修改让其判断识别后台绑定的二级域名自动更新上传地址。修改办法:
一、phpcms系统上传模块:找到/phpcms/modules/attachment/functions/globle.func.php中的initupload()方法,在大约53行后面插入如下代码:
$swf_auth_key = md5(pc_base::load_config('system','auth_key').$sess_id);$admin_url = pc_base::load_config('system','admin_url');if($isadmin&&$admin_url){ $sys_protocal = isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443' ? 'https://' : 'http://'; $upurl = $sys_protocal.$admin_url.'/';}else{ $upurl = APP_PATH;}
将下面:
upload_url:"'.APP_PATH.'index.php?m=attachment&c=attachments&a=swfupload&dosubmit=1",
修改为:
upload_url:"'.$upurl.'index.php?m=attachment&c=attachments&a=swfupload&dosubmit=1",
第二步,找到phpcms/libs/classes/form.class.php中的editor()方法,主要思想还是将加载js等文件的地址改成可根据是否绑定后台二级域名自动判断更新地址。在大约方法代码开头位置,将:
if(!defined('EDITOR_INIT')) { $str = '<script type="text/javascript" src="'.JS_PATH.'ckeditor/ckeditor.js"></script>'; define('EDITOR_INIT', 1); }
修改为:
if(!defined('EDITOR_INIT')) { $admin_url = pc_base::load_config('system','admin_url'); if(defined('IN_ADMIN')&&$admin_url){ $sys_protocal = isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443' ? 'https://' : 'http://'; $upurl = $sys_protocal.$admin_url.'/statics/js/'; }else{ $upurl = JS_PATH; } $str = '<script type="text/javascript" src="'.$upurl.'ckeditor/ckeditor.js"></script>'; define('UEDITOR_INIT', 1);}
这样就绑定后错误就得到解决了,当然还有一种更省事的方法,就是取消后台单独绑定的域名。
本文网址:https://fangzhan.seobr.com/news/384.html
本文由猎凡仿站网发布,如果您还想了解更多关于网站仿制的文章,请点击查看
仿站知识
的其它文章,转发请注明来源及版权归属。
承接以下业务:传统网站改自适应网站、网站增加手机站、网站改全屏网站改大屏展示、GBK转UFT-8、DEDECMS转WORDPRESS、网站站群制作、企业网站设计、企业网站优化、网站托管等业务
上一篇:仿站价格是多少,怎么收费的