杰奇2.4配置https导致表单提交无效

目前来说,配置ssl是网站比较主流的策略,因为许多浏览器对未配置ssl的网站都会出现不安全的提示。

但是,却出现了一个神奇的问题。
首先是前台的登陆注册,包括所有的表单提交全部都在配置完https后失效,其次是后台也进不去了,每个表单都是提交后刷新了一遍,然后就没有然后了。为了解决这个问题,我先后检查了程序,证书也进行了更换,但还是一样,直到浏览器右键查看了源码。

所有的表单action路径都还是http,因为加了强制https,所以提交就基本等于刷新当前页面

这个地方我真心研究了老半天,解决方案是找到了,但是出现问题的缘由还是要讲解一下。

解密global.php,找到2298行,可以看到这样的代码:

if ($_SERVER['HTTP_HOST'] == '' && JIEQI_URL != '') {
define('JIEQI_LOCAL_HOST', str_replace(array('http://', 'https://'), '', JIEQI_URL));
}
else {
define('JIEQI_LOCAL_HOST', $_SERVER['HTTP_HOST']);
}

 

大概含义是,判断如果页面不是通过http形式访问,并且JIEQI_URL的值不等于空,网站内地址就讲http替换为https,否则就直接显示http网址。根据这个代码,就可以推断出问题的缘由,至于JIEQI_URL这个字段的值在哪里定义,答案也很显然了,就在configs/define.php,也就是最顶部的一句,所以直接就把原本是空的这一个字段,直接改成如下就好了。

@define('JIEQI_URL','https://你的域名');

 

这样之后,杰奇里那些表单就会更新为https的链接了。

最后总结:

其实杰奇2.4以下的版本里面,JIEQI_URL是和授权密切相关的必填项,而到了这个版本,就可以留空了,或许也正是因为2.4是一个中间版本的缘故(目前杰奇最新版是3.1),导致一些判断可能没有顾忌太多,比较这个问题在杰奇3.0开始,就不会出现了,我玩过的杰奇3.0这里是可以留空并且依然配置https的。

①本站所有CMS源码、CMS源码模板等仅用于学习和交流,勿用于商业。
②本站资源有安装及使用文档,安装使用请自行探索,如您对购买的程序或是模板无法胜任安装工作,请点击付费安装。
③本站资源来源网络或者用户投稿,切勿私自传播于网络,否则将追究法律责任。且仅供学习交流之用,如有侵权请联系删除
④如果要联系客服没有QQ,请联系微信客服:zywlgs888
多爱资源网 » 杰奇2.4配置https导致表单提交无效

发表评论

提供最优质的资源集合

立即查看 了解详情