热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

phpcmsphp代码兼容,PHPCMSV9最完整的兼容https修改方案涉及后台内容管理和分页...

因历史原因PHPCMCSV9并不支持https,而且网上的修改教程都不是太完整,所以我发出我整理出来的修改教程供大家参考https修改教程phpcmsm

因历史原因PHPCMCSV9并不支持https,而且网上的修改教程都不是太完整,所以我发出我整理出来的修改教程供大家参考

https修改教程

/phpcms/modules/admin/site.php

45行,128行

/phpcms/modules/admin/templates/category_add.tpl.php

/phpcms/modules/admin/templates/category_edit.tpl.php

11行

/phpcms/modules/admin/templates/site_add.tpl.php

13行

/phpcms/modules/admin/templates/site_edit.tpl.php

11行

/phpsso_server/phpcms/modules/admin/templates/applications_add.tpl.php

/phpsso_server/phpcms/modules/admin/templates/applications_edit.tpl.php

14行

找到下面代码:

PHP

http:\/\/(.+)\/$

1

http:\/\/(.+)\/$

改成

PHP

^(http(s)?:)?\/\/(.+)\/$

1

^(http(s)?:)?\/\/(.+)\/$

基本配置的phpcms/modules/admin/templates/setting.tpl.php

PHP

http:\/\/(.+)[^/]$

1

http:\/\/(.+)[^/]$

改成

PHP

^(http(s)?:)?\/\/(.+)[^/]$

1

^(http(s)?:)?\/\/(.+)[^/]$

友链模块的

phpcms/modules/link/templates/link_add.tpl.php和link_edit.tpl.php找到

PHP

^http:\/\/[A-Za-z0-9]&#43;\.[A-Za-z0-9]&#43;[\/&#61;\?%\-&]*([^<>])*$

1

^http:\/\/[A-Za-z0-9]&#43;\.[A-Za-z0-9]&#43;[\/&#61;\?%\-&]*([^<>])*$

改成

PHP

^(http(s)?:)?\/\/[A-Za-z0-9]&#43;\.[A-Za-z0-9]&#43;[\/&#61;\?%\-&]*([^<>])*$

1

^(http(s)?:)?\/\/[A-Za-z0-9]&#43;\.[A-Za-z0-9]&#43;[\/&#61;\?%\-&]*([^<>])*$

扩展-来源的phpcms/modules/admin/templates/copyfrom_add.tpl.php和copyfrom_edit.tpl.php找到

PHP

^http://

1

^http://

改成

PHP

^(http(s)?:)?\/\/(.&#43;)\/$

1

^(http(s)?:)?\/\/(.&#43;)\/$

扩展-关联链接的phpcms/modules/admin/templates/keylink_add.tpl.php和keylink_edit.tpl.php找到

PHP

^http:

1

^http:

改成

PHP

^http(s)?:\/\/

1

^http(s)?:\/\/

以上为前端修改

通信及后台部分修改

后台内容列表&#xff0c;这部分很重要&#xff0c;牵扯到整个后台的分页&#xff0c;不仅限于内容分页

phpcms/modules/content/templates/content_list.tpl.php

97行找到

PHP

} elseif(strpos($r[&#39;url&#39;],&#39;http://&#39;)!&#61;&#61;false) {

1

}elseif(strpos($r[&#39;url&#39;],&#39;http://&#39;)!&#61;&#61;false){

改成

PHP

} elseif(preg_match(&#39;/^(http(s)?:)?\/\//&#39;, $r[&#39;url&#39;])) {

1

}elseif(preg_match(&#39;/^(http(s)?:)?\/\//&#39;,$r[&#39;url&#39;])){

后台分页&#xff0c;这部分很重要&#xff0c;牵扯到内容管理里的标题超链打开地址

phpcms/libs/functions/global.func.php

找到pageurl函数&#xff0c;没修改过的在784行&#xff0c;里面找到

PHP

$url &#61; str_replace(array(&#39;http://&#39;,&#39;//&#39;,&#39;~&#39;), array(&#39;~&#39;,&#39;/&#39;,&#39;http://&#39;), $url);

1

$url&#61;str_replace(array(&#39;http://&#39;,&#39;//&#39;,&#39;~&#39;),array(&#39;~&#39;,&#39;/&#39;,&#39;http://&#39;),$url);

改成

PHP

$url &#61; preg_replace(array(&#39;/^((\w&#43;):)?\/\//&#39;, &#39;/\/{2,}/&#39;, &#39;/~/&#39;), array(&#39;$1~&#39;, &#39;/&#39;, &#39;//&#39;), $url);

1

$url&#61;preg_replace(array(&#39;/^((\w&#43;):)?\/\//&#39;,&#39;/\/{2,}/&#39;,&#39;/~/&#39;),array(&#39;$1~&#39;,&#39;/&#39;,&#39;//&#39;),$url);

/phpsso_server/api/uc_client/client.php找到

PHP

$port &#61; !empty($matches[&#39;port&#39;]) ? $matches[&#39;port&#39;] : 80;

1

$port&#61;!empty($matches[&#39;port&#39;])?$matches[&#39;port&#39;]:80;

改成

PHP

$port &#61; !empty($matches[&#39;port&#39;]) ? $matches[&#39;port&#39;] : ($matches[&#39;scheme&#39;] &#61;&#61; &#39;https&#39; ? 443 : 80);

1

$port&#61;!empty($matches[&#39;port&#39;])?$matches[&#39;port&#39;]:($matches[&#39;scheme&#39;]&#61;&#61;&#39;https&#39;?443:80);

/phpsso_server/api/uc_client/model/misc.php找到

PHP

$port &#61; !empty($matches[&#39;port&#39;]) ? $matches[&#39;port&#39;] : 80;

1

$port&#61;!empty($matches[&#39;port&#39;])?$matches[&#39;port&#39;]:80;

改成

PHP

$port &#61; !empty($matches[&#39;port&#39;]) ? $matches[&#39;port&#39;] : ($matches[&#39;scheme&#39;] &#61;&#61; &#39;https&#39; ? 443 : 80);

1

$port&#61;!empty($matches[&#39;port&#39;])?$matches[&#39;port&#39;]:($matches[&#39;scheme&#39;]&#61;&#61;&#39;https&#39;?443:80);

/phpcms/libs/classes/http.class.php找到

PHP

$port &#61; $matches[&#39;port&#39;] ? $matches[&#39;port&#39;] : 80;

1

$port&#61;$matches[&#39;port&#39;]?$matches[&#39;port&#39;]:80;

改成

PHP

$port &#61; !empty($matches[&#39;port&#39;]) ? $matches[&#39;port&#39;] : ($matches[&#39;scheme&#39;]&#61;&#61;&#39;https&#39; ? 443 : 80);

$protocol &#61; (&#39;https&#39; &#61;&#61; $matches[&#39;scheme&#39;]) ? &#39;ssl://&#39; : &#39;&#39;;

1

2

$port&#61;!empty($matches[&#39;port&#39;])?$matches[&#39;port&#39;]:($matches[&#39;scheme&#39;]&#61;&#61;&#39;https&#39;?443:80);

$protocol&#61;(&#39;https&#39;&#61;&#61;$matches[&#39;scheme&#39;])?&#39;ssl://&#39;:&#39;&#39;;

找到

PHP

$fp &#61; &#64;fsockopen($host, $port, $errno, $errstr, $timeout);

1

$fp&#61;&#64;fsockopen($host,$port,$errno,$errstr,$timeout);

改成

PHP

$fp &#61; &#64;fsockopen($protocol.$host, $port, $errno, $errstr, $timeout);

1

$fp&#61;&#64;fsockopen($protocol.$host,$port,$errno,$errstr,$timeout);

phpsso_server/phpcms/libs/classes/http.class.php找到

PHP

$port &#61; $matches[&#39;port&#39;] ? $matches[&#39;port&#39;] : 80;

1

$port&#61;$matches[&#39;port&#39;]?$matches[&#39;port&#39;]:80;

改成

PHP

$port &#61; !empty($matches[&#39;port&#39;]) ? $matches[&#39;port&#39;] : ($matches[&#39;scheme&#39;]&#61;&#61;&#39;https&#39; ? 443 : 80);

$protocol &#61; (&#39;https&#39; &#61;&#61; $matches[&#39;scheme&#39;]) ? &#39;ssl://&#39; : &#39;&#39;;

1

2

$port&#61;!empty($matches[&#39;port&#39;])?$matches[&#39;port&#39;]:($matches[&#39;scheme&#39;]&#61;&#61;&#39;https&#39;?443:80);

$protocol&#61;(&#39;https&#39;&#61;&#61;$matches[&#39;scheme&#39;])?&#39;ssl://&#39;:&#39;&#39;;

phpcms/modules/member/classes/client.class.php里找到_ps_post函数&#xff0c;里面的

PHP

$port &#61; !empty($matches[&#39;port&#39;]) ? $matches[&#39;port&#39;] : 80;

1

$port&#61;!empty($matches[&#39;port&#39;])?$matches[&#39;port&#39;]:80;

改成

PHP

$port &#61; !empty($matches[&#39;port&#39;]) ? $matches[&#39;port&#39;] : ($matches[&#39;scheme&#39;]&#61;&#61;&#39;https&#39; ? 443 : 80);

1

$port&#61;!empty($matches[&#39;port&#39;])?$matches[&#39;port&#39;]:($matches[&#39;scheme&#39;]&#61;&#61;&#39;https&#39;?443:80);

通过以上修改&#xff0c;基本解决了PHPCMCSV9兼容https的问题&#xff0c;至于为什么说基本&#xff0c;因为这里也有可能我尚未发现的地方&#xff0c;如果有可以在评论区告知一下&#xff0c;我更新上来



推荐阅读
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 本文介绍了如何使用python从列表中删除所有的零,并将结果以列表形式输出,同时提供了示例格式。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 纠正网上的错误:自定义一个类叫java.lang.System/String的方法
    本文纠正了网上关于自定义一个类叫java.lang.System/String的错误答案,并详细解释了为什么这种方法是错误的。作者指出,虽然双亲委托机制确实可以阻止自定义的System类被加载,但通过自定义一个特殊的类加载器,可以绕过双亲委托机制,达到自定义System类的目的。作者呼吁读者对网上的内容持怀疑态度,并带着问题来阅读文章。 ... [详细]
  • 带添加按钮的GridView,item的删除事件
    先上图片效果;gridView无数据时显示添加按钮,有数据时,第一格显示添加按钮,后面显示数据:布局文件:addr_manage.xml<?xmlve ... [详细]
  • 本文介绍了使用C++Builder实现获取USB优盘序列号的方法,包括相关的代码和说明。通过该方法,可以获取指定盘符的USB优盘序列号,并将其存放在缓冲中。该方法可以在Windows系统中有效地获取USB优盘序列号,并且适用于C++Builder开发环境。 ... [详细]
  • 【爬虫】关于企业信用信息公示系统加速乐最新反爬虫机制
    ( ̄▽ ̄)~又得半夜修仙了,作为一个爬虫小白,花了3天时间写好的程序,才跑了一个月目标网站就更新了,是有点悲催,还是要只有一天的时间重构。升级后网站的层次结构并没有太多变化,表面上 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 分享2款网站程序源码/主题等后门检测工具
    本文介绍了2款用于检测网站程序源码和主题中是否存在后门的工具,分别是WebShellkiller和D盾_Web查杀。WebShellkiller是一款支持webshell和暗链扫描的工具,采用多重检测引擎和智能检测模型,能够更精准地检测出已知和未知的后门文件。D盾_Web查杀则使用自行研发的代码分析引擎,能够分析更为隐藏的WebShell后门行为。 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • 正则表达式及其范例
    为什么80%的码农都做不了架构师?一、前言部分控制台输入的字符串,编译成java字符串之后才送进内存,比如控制台打\, ... [详细]
  • 巧用arguments在Javascript的函数中有个名为arguments的类数组对象。它看起来是那么的诡异而且名不经传,但众多的Javascript库都使用着它强大的功能。所 ... [详细]
author-avatar
阿芙2011
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有