테스트 사이트 - 개발 중인 베타 버전입니다

(isset($_SERVER['https'])) && $_SERVER['https']=='on' 조건 크롬에서 오류 채택완료

codribble 7년 전 조회 80,964

영카트로 제작된 쇼핑몰에 호스팅사를 통해 ssl 을 심어놓은 상태입니다.

 

추가로 작업한건

 

config.php 에 보안서버 도메인 부분에 추가만 했습니다.

 

</p>

<p>/*

보안서버 도메인

회원가입, 글쓰기에 사용되는 https 로 시작되는 주소를 말합니다.

포트가 있다면 도메인 뒤에 :443 과 같이 입력하세요.

보안서버주소가 없다면 공란으로 두시면 되며 보안서버주소 뒤에 / 는 붙이지 않습니다.

입력예) <a href="https://www.domain.com:443/gnuboard5" target="_blank" rel="noopener noreferrer">https://www.domain.com:443/gnuboard5</a>

*/

define('G5_DOMAIN', '<a href="https://www.aaa.com');" target="_blank" rel="noopener noreferrer">https://www.aaa.com');</a>

define('G5_HTTPS_DOMAIN', '<a href="https://www.aaa.com');" target="_blank" rel="noopener noreferrer">https://www.aaa.com');</a></p>

<p>

 

그래서 https로 접속은 잘 되는데...

 

회원가입 폼에서 주소검색을 불러오는 부분과 주문서작성 폼에서 신용카드결제로 체크후 주문하기 할때

</p>

<p>if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') {  //https 통신일때</p>

<p>    https 로 불러옴</p>

<p>}else{</p>

<p>    http 로 불러옴</p>

<p>}</p>

<p>

 

https 통신상태에 따라 스크립트 불러오는 url 을 https 로 시작할지 http 로 시작할지 정하는 조건이 들어가있는데

 

첫번째, config.php 제일 하단에 다음 주소js 불러오는 부분

</p>

<p>if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') {   //https 통신일때 daum 주소 js

    define('G5_POSTCODE_JS', '<script src="<a href="https://spi.maps.daum.net/imap/map_js_init/postcode.v2.js"></script>');" target="_blank" rel="noopener noreferrer">https://spi.maps.daum.net/imap/map_js_init/postcode.v2.js"></script>');</a>

} else {  //http 통신일때 daum 주소 js

    define('G5_POSTCODE_JS', '<script src="<a href="http://dmaps.daum.net/map_js_init/postcode.v2.js"></script>');" target="_blank" rel="noopener noreferrer">http://dmaps.daum.net/map_js_init/postcode.v2.js"></script>');</a>

}</p>

<p>

두번째, /shop/lg/orderform.1.php 파일 8번째 줄 crossplatform.js 불러오는 부분

</p>

<p><script language="javascript" src="<?php echo (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ? 'https' : 'http'; ?>://xpay.uplus.co.kr/xpay/js/xpay_crossplatform.js" type="text/javascript"></script></p>

<p>

 

현재 발견된 페이지는 2페이지이고 2페이지 내에서 콘솔창에 mixed content 경고가 뜹니다...ㅠㅠㅠ

 

저 https 통신상태조건이 먹히질 않는것 같은데 어떻게 해야 저 조건이 먹힐까요...??ㅠㅠㅠ

 

아 추가로 이게 ie에서는 상관이 없는데 크롬에서만 버튼들이 먹통이되네요...ㅠㅠㅠ

 

도와주세요;;ㅠㅠㅠ

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

플래토
7년 전

조금더 간단한 방법으로 접근해보시죠

 

서버 변수중에

$_SERVER["REQUEST_SCHEME"] 라는 값이 있습니다.

 

이 값은

http이면 http

https면 https

의 값을 가지게 됩니다.

 

따라서, 

도메인앞에 이 변수를 사용하면 해결되겠죠

 

</p>

<p>if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') {</p>

<p>=>를</p>

<p>if($_SERVER["REQUEST_SCHEME"]  == "https") {</p>

<p>로 변경</p>

<p> </p>

<p><script language="javascript" src="<?php echo (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ? 'https' : 'http'; ?>://xpay.uplus.co.kr/xpay/js/xpay_crossplatform.js" type="text/javascript"></script></p>

<p>는</p>

<p> </p>

<p><script language="javascript" src="<?php echo $_SERVER["REQUEST_SCHEME"] ?>://xpay.uplus.co.kr/xpay/js/xpay_crossplatform.js" type="text/javascript"></script></p>

<p>로 변경하면 될듯싶네요</p>

<p> </p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

c
codribble
7년 전
답변 감사합니다...

근데 말씀해주신대로 바꿔봐도 적용은 안되네요...ㅠㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인