반응형

 

 

장바구니도 기능을 넣다보면 끝이 없으니 여기서는 세션을 이용해서 간단한 장바구니를 만들어 보도록 하자.

 

세션을 이용한 장바구니를 만들것이기때문에 우선 세션에 대해서 조금만 공부해보자. 아래와 같은 파일을 만든다.

 

/ss.php

<?php session_start();

echo "sessionid=>".session_id();
echo "<pre>";
print_r($_SESSION);

print_r($_COOKIE);
echo "</pre>";

?>

그리고 위 파일을 열어보자. 

 

http://localhost:8008/ss.php

 

이렇게 열어보면

 

sessionid=>dcs9ce6u213bj08jgamvsiig27

Array
(
)
Array
(
    [PHPSESSID] => dcs9ce6u213bj08jgamvsiig27
)

 

이렇게 값이 보인다. session_start()를 줘서 세션 값을 줬기때문에 세션아이디를 확인할 수 있다. 쿠키에도 기본적으로 이 세션값이 들어간다. 

 

이번엔 로그인을 해보자. 로그인을 하고 다시 조금 전에 페이지로 가서 확인해보자.

 

sessionid=>dcs9ce6u213bj08jgamvsiig27

Array
(
    [UID] => prog
    [UNAME] => programmer
)
Array
(
    [PHPSESSID] => dcs9ce6u213bj08jgamvsiig27
)

로그인을 했으므로 로그인에 대한 세션값을 확인할 수 있다. 또 하나 세션아이디값은 로그인하기 전과 후가 다르지 않다는 것이다.

 

그러면 이제 장바구니 테이블을 만들고 세션아이디값과 회원아이디 값을 넣을 수 있도록 만들고 로그인하기 전에 장바구니에 넣었던 상품들은 세션아이디 값을 이용해서 넣고 만약 로그인을 하면 해당 세션아이디 값들은 모두 회원아이디를 업데이트 해주면 된다.

 

다만 브라우저를 닫았다가 다시 열면 세션아이디값이 바뀌게 되니 주의하자. 만약 이런 경우에도 장바구니에 넣고 싶다면 쿠키값을 이용하면 된다. 하지만 여기서는 세션만 이용해서 해보겠다.

 

그럼 장바구니용 테이블을 만들어 보자.

 

CREATE TABLE `cart` (
  `cartid` int(11) NOT NULL AUTO_INCREMENT,
  `pid` int(11) DEFAULT NULL,
  `userid` varchar(100) DEFAULT NULL,
  `ssid` varchar(100) DEFAULT NULL,
  `options` varchar(100) DEFAULT NULL,
  `cnt` int(11) DEFAULT NULL,
  `regdate` datetime DEFAULT NULL,
  PRIMARY KEY (`cartid`),
  KEY `cart_pid_IDX` (`pid`) USING BTREE,
  KEY `cart_userid_IDX` (`userid`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

 

늘 얘기하지만 테이블 설계에는 정답이 없다. 지금은 이렇게 만들지만 나중에 필요에 따라 컬럼을 추가하거나 삭제할 수도 있는 것이다.

 

이제 상세 페이지에서 장바구니 버튼을 클릭하면 위 테이블에 넣어주고 장바구니 화면에 들어가면 제품 페이지와 조인해서 화면에 뿌려주면 된다. 그건 다음 시간에 해보자.

 

반응형

+ Recent posts