채택완료

영카트 Version 5.6.23 에서 휴대폰에서 계속하여 접속이 끊기는건 무슨 문제일가요?

컴퓨터에서는 접속이 끊긴적이 없는데 모바일에서는 계속하여 접속이 끊기는 현상이  있네요...
접속이 끊길경우 wifi 를 껏다 켯다 하니 또 접속이 되는 상황이고...데이타 이용중 접속이 끊기면 계속하여 접속이 안되네요...

혹식 세션설정과 상관이 있을가?  접속 끊긴 부분에서는 error.log에서 확인이 안됩니다. 접속 끊긴 로그가 없어요..
새로운 파일에서 

    if (get_session('ss_bus_id') !== $ss_bus_id) {
        set_session('ss_bus_id', $ss_bus_id);
       // set_cookie('ck_bus_id', $ss_bus_id, 259200);
        set_cookie('ck_bus_id', $ss_bus_id, 3 * 24 * 60 * 60);
    }
세션 설정을 3일로 했는데 
common.php 파일에서는  ini_set("session.cache_expire", 180); // 세션 캐쉬 보관시간 (분)

이게 충돌 될수 있을가요? 

혹은 장바구니 비우기  코드랑 충돌이 있을가요?  1시간마다 실행을 했어요..
<?php
include_once('./_common.php');

$secret_key = 'aogkrn';
if ($_GET['key'] !== $secret_key) {
    die("Permission Denied.");
}

$clean_time = date("Y-m-d H:i:s", time() - (3 * 3600)); 

$sql = " delete from {$g5['g5_shop_cart_table']} 
         where ct_direct = '0' 
           and ct_status = '쇼핑' 
           and ct_time < '{$clean_time}' ";

sql_query($sql);
echo "Success: ".date("Y-m-d H:i:s")." (Old data cleaned)";
?>


Nginx 1.28.1   MySQL 5.7.44    PHP 8.0.26

|

답변 1개 / 댓글 7개

채택된 답변
+20 포인트
세션/쿠키 처리 문제일 가능성이 높아 보입니다.
일단
php.ini에서 session.gc_maxlifetime 값을 좀 올려보세요 
그리고
session.cookie_secure = On 설정해보세요 없으면추가 해주시구요. 
만약 php.ini 접근이 힘든상황이라면.
.htaccess 에추가해줄수도있어요 php_value session.cookie_secure On 
아니면 config.php에서
ini_set('session.cookie_secure', 1);
session_start();

단 https 일경우에만 성립이됩니다.

그리고
config.php에서 session.cookie_domain을 사이트 도메인에 맞게설정이 되어있는 확인.
꼼꼼하게 세션/쿠키처리 부분을 체크 해보시기 바랍니다. 화이팅

답변에 대한 댓글 7개

감사합니다.
session.gc_maxlifetime = 1440 에서 3600으로 설정
session.cookie_secure = 에서
session.cookie_secure = On 으로 설정,
define('G5_COOKIE_DOMAIN', ' '); 에서 도메인 설정.
해서 지금 접속이 됩니다..
세션/쿠키가 설정으로인해 바로 문제가 되지 않고 쌓이고 쌓여서 문제가 될수가 있을가요?
위 설정없이 계속 잘 접속이 되다가 갑자기 휴대폰 브라우저에서만 접속이 끊기는 현상이 발생합니다.
이게 피시와 모바일 이둘은 프로토콜 전송방식은 같지만 모바일에서는 보안설정이 좀더 까탈스러워서 그래요
그래서 그누보드환경경설정에 define('G5_COOKIE_DOMAIN', ' '); 이게 중요 합니다. 보통 설정안하고 빈 공간으로 내비둬버린사랍들 이 많은데 필히 하셔야한다라는점 물론 https 사용 할 겨웅에는 중요하 다 라는 것입니다. 그래서 항상 기본적으로 https:// , https://www, http:// http://www 이게 다열리 있는지 확인이 필수라는것입니다.
하여
세션 쿠키 가 쌇여서 문제가 될수없다고 볼수있습니다.
모바일 브라우저가 보안이 강해서 환경이 달라서 그런다 고 볼수잇다라는 것입니다.
모바일에서 는 여러개의 브라우저로 테스트 해보셔야합니다.
그리고 선생님 ini_set("session.cache_expire", 180); 이건 말그대로 180분동안 보관만 할뿐 유지 시간이 아닙ㄴ키다. session.gc_maxlifetime 이설정이 유지시간이라고 보시면 됩니다 참고하시면됩니다.

세션은 서버파일 쿠키는 브라우저
하여
세션 쿠키가 On이면 http에서 무족건 쿠키를 차단이된다라는뜻이 기도합니다. 하여 앞서 말씀드린데로 https:// , https://www, http:// http://www 이게 통합이 되었는지 체크를 필하시기 바랍니다. 화이팅~
너무 감사드립니다.
말씀하신대로 수정후 한번 접속 끊김이 있었네요..
SSL 설정으로 강제 HTTPS, URL 리디렉션을 www.주소.com 에서 http://주소.com , 지금은 https 로수정,
이게 문제가 될수 있을가요? 사이트 완성하면서 설정을 해놓은건데...초기에는 접속 끊김이 없었던것 같아요...
리디렉션으로 https://주소.com 이동이라서 https:// , https://www, http:// http://www 모두 상관 없겠죠?
접속 끊김현상이 http접속이 아닌 https://주소.com 이런 접속이였어요...
그리고 index파일에 header("Location: /shop/"); 했는데도 넘어가지가도 않고 접속이 끊겼어요
브라우저는 모바일 사파리와 크롬입니다.
또 끊김이 있네요...약 10초정도 새로 고침계속 하고 있으니 또 접속이 되고요...
말씀주신 외에도 연관성 되는 부분이 또 있을가요?
저게 사실 선생님 apache 웹서버에서는 잘나타나지않아요 Nginx 이서버에서만 php세션 설정에서 발생한다라는 점
하여 말그대로 세션 경로 가 달라서 그럴수도 있다라는점이지요
Nginx + PHP 세션 설정을 꼼꼽히 관련문제점을 찾아보셔야합니다.
특히 https에서만 쿠키를 사용 해야하는데 http 에서 한번이라도 발생하면 쿠키는 무료 세션은 초기화 그래서 로그인이 풀릴수도 있습니다.
data/session 세션 폴더가 있는지 없으면 어디에 실제 세션이 저장되는지를 찾아보셔야한다라는점이고 그렇면 원인을 좀더 적극적으로 잡을수가 있다고 봅니다. 힘드시면 제작 의뢰이 에한번 문제점을 신청해보시기 바랍니다. 여러곳을 체크 해봐야 하닌깐요
네 감사합니다~

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