首頁  >  文章  >  CMS教程  >  phpcms v9登入失敗怎麼辦

phpcms v9登入失敗怎麼辦

藏色散人
藏色散人原創
2020-02-04 10:11:002453瀏覽

phpcms v9登入失敗怎麼辦

phpcms v9登入失敗? phpcmsv9全站https ssl後會員登入失敗解決方法

phpcms v9登入失敗怎麼辦

很多朋友在使用phpcmsv9的時候遇到了這樣一個問題,在將全站https化後,會員中心無法正常登錄,具體是沒有返回值,提示登錄失敗,主要是原來是系統在初始化phpsso時,無法將數據通過443傳輸到對應的方法,通過排查問題,可以看到在client.class.php中,系統預設使用的連接埠是80,所以我們只要以下方法修改就可以解決在https後會員無法登入的問題:

 

phpcms v9登入失敗怎麼辦

 

 

#phpcms/modules/member/classes/client.class.php 

#中361行修改如下:

$port = !empty($matches['port']) ? $matches['port'] : ( strtolower($matches['scheme'])=='https' ? 443 : 80 );

 

第386行將:

$fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);

 

替換為

$contextOptions = array(
    'ssl' => array(
        'verify_peer' => false,
        'verify_peer_name' => false
    )
);
 
//如果有签名的证书
//$contextOptions = array(
//    'ssl' => array(
//        'verify_peer' => true, 
//        'cafile' => '/path/to/cacert.pem',
//        //'CN_match' => 'indexroot.net', // 匹配域名
//        'ciphers' => 'HIGH:!SSLv2:!SSLv3',
//        'disable_compression' => true,
//    )
//);
 
$context = stream_context_create($contextOptions);
$fp = stream_socket_client("ssl://{$host}:{$port}", $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT, $context);

PHP中文網,大量的免費PHPCMS教學,歡迎線上學習!

以上是phpcms v9登入失敗怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn