cartupdate.php 에서 튕기는 문제
아무리 봐도 해결을 못하겠네요.
■ 환경 :
- apache,php,mysql
- 독립서버
- 그누보드+영카트 (YoungCart Version 5.3.3.3.1)
- https 일부 적용 (즉, http,https 혼용형태)
■ 오류 상황
로그인후, 커뮤니티 이용하다가, 잠깐 1~2분정도 이용중지후 쇼핑몰상품 들어가서 바로구매 클릭하면 튕김
cartupdate.php 25라인
// 레벨(권한)이 상품구입 권한보다 작다면 상품을 구입할 수 없음.
if ($member['mb_level'] < $default['de_level_sell'])
{
alert('상품을 구입할 수 있는 권한이 없습니다.');
}
이부분에서 튕깁니다.
주소창을보면 cartupdate.php는 https로 연결되더군요.
단순히 http -> https 세션공유 문제는 아닌 것 같은데.
(왜냐하면, 1~분정도 이용중지 없이 로그인후 게시판 몇개보고 쇼핑몰가서 바로구매하면 잘됩니다.
꼭 1~2분 이용을 멈춘다음 바로구매 들어가면 그런 에러가 납니다.)
고견을 부탁드립니다.
PS:
1. 회원레벨문제 아닙니다. 상기 언급했듯이 로그인후 바로하면 잘됩니다.(구입권한도 있습니다)
다만, 이용을 1~2분 안한다음 하면 튕깁니다.
2. 세션 타임아읏 설정 문제 아닙니다. common.php 에 아래와같이 설정되어있습니다.
ini_set("session.cache_expire", 180); // 세션 캐쉬 보관시간 (분)
ini_set("session.gc_maxlifetime", 10800);
답변 2개 / 댓글 5개
1~2분 후에 다른 페이지로 가능 경우에는 로그인이 유지되는지 한번 살펴 보세요.
우선 cartupdate만의 문제인지 아닌지 확인해 보세요.
답변에 대한 댓글 3개
http,https 섞어 쓰는 경우 로그인 문제가 있다는 글들이 있는데
대부분 해결책은
전부 https로 써라"하네요.
https://stackoverflow.com/questions/5843305/switching-between-http-and-https-pages-with-secure-session-cookie
https://www.smashingmagazine.com/2017/06/guide-switching-http-https/
https://serverfault.com/questions/663229/php-session-sharing-between-http-and-https
이것저것 찾아봐도 전체를 https로 하는 방법 밖에 없는것 같습니다.
이건 또 어떻게 해야하나...고민해봐야 겠습니다.
오류의 원인에서 확인해보셔야 할거같은데
if ($member['mb_level'] < $default['de_level_sell'])
{
alert('상품을 구입할 수 있는 권한이 없습니다.');
}
이 로직전에
echo "mb_level : ".$member['mb_level']."<BR>";
echo "mb_level : ".$default['de_level_sell']."<BR>";
print_r2($default);
exit;
를 통해서
$default에 어떤값들이존재하는지 확인해서
조건에 부합하는지 먼저 확인해보시죠
답변에 대한 댓글 2개
$default['de_level_sell'] = 2 가 찍힙니다.
즉, 비회원으로 인식된다는 겁니다. 로그인이 풀린다는 것.
로그인-> 상품 -> 바로구매는 잘되고
로그인-> 1,2분쉬었다가 -> 상품(로그인 안풀림) -> 바로구매 (풀림-에러)
이런 결과가 나오는 것입니다.
로그인이 풀리는데 원인을 알수 없는것입니다.
왜 1,2분 쉬었다하면 로그인이 풀리는지.... 다른기능은 다 안풀리는데 왜 바로구매만 풀리는지....
답답합니다.
찍어본값이
mb_level : 1
de_level_sell : 2
라는것 이라면
cartupdate.php를 봐야하는게 문제가 아니라.
프로토콜을 점검해보거나
로그인/로그아웃을 점검해 봐야 하는게 맞겠네요
https -> http 로 가거나
http -> https 로 가거나 하는지를 먼저 체크해보시고
그러면 당연히 로그아웃상태로 판단되니까요
다른메뉴들에서도 로그아웃이 되는시점이 어딘지 찾는게 더 중요한 사항입니다.
답변을 작성하려면 로그인이 필요합니다.
딱 cartupdate 만 가면 풀립니다. cartupdate 파일은 https 로 가더군요.
그런데 이것이 단순히 http->https 문제가 아닌것이
로그인후 커뮤니티 좀 이용하다가, 1~2분 안에 cartupdate 로 가면 잘됩니다.
그런데 1~2분 넘게 다른것 하다가 cartupdate로 가면 튕깁니다.
그래서 환장합니다.
요약.
1. 사이트는 http , https 같이 쓰는 방식입니다.
2. cartupdate는 https로 가더군요
3. 로그인후 1~2분안에 cartupdate 로 가면 문제 없이 바로구매가 잘 됩니다.
4. 로그인후 1~2분 넘게 다른것(커뮤니티:http) 하다가 cartupdate로 가면 튕깁니다.