搜索
查看: 1012|回复: 0

discuz3.4设置https之后,UC通信失败解决方法

[复制链接]
发表于 2017-10-31 10:30:26 | 显示全部楼层 |阅读模式
在UC目录找到文件:/public_html/uc_server/model/misc.php

加中间红色的那一段,从 if(substr($url,0,5)=='https' 到 return curl_exec($ch); }:


    function dfopen($url, $limit = 0, $post = '', $cookie = '', $bysocket = FALSE    , $ip = '', $timeout = 15, $block = TRUE, $encodetype  = 'URLENCODE') {
        $return = '';
        $matches = parse_url($url);
        $scheme = $matches['scheme'];
        $host = $matches['host'];
        $path = $matches['path'] ? $matches['path'].($matches['query'] ? '?'.$matches['query'] : '') : '/';
        $port = !empty($matches['port']) ? $matches['port'] : 80;

                if(substr($url,0,5)=='https'){
                            $ch = curl_init($url);
                            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                            if($post){
                                    curl_setopt($ch, CURLOPT_POST, 1);
                                    curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
                            }
                            if($cookie){
                                    curl_setopt($ch, CURLOPT_COOKIE, $cookie);
                            }
                            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
                            return curl_exec($ch);
                    }


        if($post) {
            $out = "OST $path HTTP/1.0\r\n";
            $header = "Accept: */*\r\n";
            $header .= "Accept-Language: zh-cn\r\n";
            $boundary = $encodetype == 'URLENCODE' ? '' : ';'.substr($post, 0, trim(strpos($post, "\n")));
            $header .= $encodetype == 'URLENCODE' ? "Content-Type: application/x-www-form-urlencoded\r\n" : "Content-Type: multipart/form-data$boundary\r\n";
            $header .= "User-Agent: $_SERVER[HTTP_USER_AGENT]\r\n";
            $header .= "Host: $hostport\r\n";
            $header .= 'Content-Length: '.strlen($post)."\r\n";
            $header .= "Connection: Close\r\n";
            $header .= "Cache-Control: no-cache\r\n";
            $header .= "Cookie: $cookie\r\n\r\n";
            $out .= $header.$post;


编后语:经测试,即使是UC显示通讯失败,但是在前台注册的时候还是同步的,对网站运行不影响,有强迫性的人就修改一下吧。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

麦屯网

网站简介:专业发烧音乐试听,最新专辑,发烧器材评测,音乐影视信息交流。

联系我们

  • 反馈邮箱:sorry16817#gmail.com

麦屯博客 |网站地图

Powered by maitun.net

快速回复 返回顶部 返回列表