앞의 포스팅에 있듯 ( http://cybercafe.tistory.com/9 ) 내가 다니는 회사의 컨설팅 팀 엔지니어의 지원 프로젝트 관리 및 기술지원 이력 관리 그리고 엔지니어 개개인의 일정관리를 위해 만든 기술지원 관리 시스템이 있다.
여기에 프로젝트 이름을 클릭하면 해당 프로젝트의 기술지원 이력을 뜨게끔 연결하는 기능을 추가하려 했다.
다음과 같은 페이지다.
<01.jpg>
프로젝트의 명칭을 클릭하면 다음과 같이 GET Method로 프로젝트의 기술지원 이력을 조회하는 페이지로 프로젝트 명칭과 프로젝트 명칭을 넘겨서 조회하려 한다.
그런데 프로젝트 명에 공백이 있으면… 즉 위의 적색 박스와 같이 공백이 있으면 다음페이지에서
$projectname=$_REQUEST[‘pname’];
와 같이 받으면 $pname에 첫 번째 공백까지의 문자열만 넘어오는 현상이 있었다.
이 문제를 해결하기 위해서는 다음과 같이 인코딩을 해서 넘겨주어야 했다.
<a href=support_list.php?cname=” . htmlentities(urlencode($data[‘v_cname’])) . “&pname=” . htmlentities(urlencode($data[‘v_pname’])) . “>” . $data[‘v_pname’]. “</a>
즉 htmlentities(urlencode(변수명)) 과 같이 GET방식으로 다음페이지로 넘겨줄 변수의 값을 인코딩하여 넘겨주면 되었다.
또한 받는 쪽에서는 자동으로 Decoding 을 해주기 때문에 별다른 수정을 하지 않아도 되었다.
다만 공백이 포함된 변수를 전달받아 화면에 표시해줄 때는 다음과 같이 변수의 앞과 뒤에 큰따옴표(“)를 해주어야 제대로 값이 표시된다.
<input type=text name=pname value=”<? echo $pname; ?>”>
2009년 6월의 어느날…