문의내용
Q
오류 건으로 문의 드린 후, 개인 사정으로 연락을 못 드렸습니다.
오류를 찾아보고 확인이 안 되면 다시 연락드리려고 소스를 찾아봤습니다.
찾아보니 형변환에서 문제가 조금 있더군요.
예약등록 시, od_id 에 16자리의 숫자가 저장이 되는데요.
order.info.skin.php 에서 get 방식으로 전달된 인수를 대입하는 과정에서 아래처럼 정수형으로 형변환을 하더군요.
$od_id = (int)$_GET['od_id'];
그래서, 정수형의 최대값인 2147483647 이 $od_id 에 대입이 되어 예약정보가 없다는 메시지가 보이게 되네요.
형변환을 하지 않는 것으로 변경해서 오류 부분은 해결을 했습니다.
$od_id = (int)$_GET['od_id']; -> $od_id = $_GET['od_id'];
그누보드 사이트에도 제가 겪은 것과 비슷한 증상을 말하는 댓글도 있던데, 이 이유이지 않나 싶습니다.
혹 다른 방식으로 해결을 하셨으면 말씀해 주시고, 배포중인 소스도 업데이트 부탁드리겠습니다.
수고하세요.
답변
A
안녕하세요. 위토즈소프트 입니다.
까막님의 의견 감사합니다.
말씀하신것처럼 int 형변환으로 생기는 문제로 판단됩니다.
$od_id = (int)$_GET['od_id'];
부분을
$od_id = $_GET['od_id'];
$od_id = preg_match("/^[0-9]+$/", $od_id) ? $od_id : '';
로 변경하시면 될것 같습니다.
중요한 의견 다시 한번 감사합니다.