[PHP] GET방식으로 parameter 전달 시 space(공백) 포함하기
2024. 5. 11. 18:26ㆍ정보보안 및 해킹/웹 개발
필자는 게시판을 만들다가 DB중 title을 기준으로 해서 쿼리문을 구성하고 있었는데,
title 중에 공백(스페이스바)가 포함된 문자열이 제법 많았다.
그런데 GET방식으로 parameter를 전달하다가 공백 앞에서 문자열이 끊겨 공백 앞 문자열까지만 전달이 되었다.
그래서 해결 방안을 모색했고, 해당 해결 방안은
공백을 인코딩하여 parameter를 전송하는 것이었다.
공백은 %20으로 인코딩이 된다
php에서는 해당 과정을 아주 쉽게 사용할 수 있도록 구현해 놓은 것이 있었는데, 그것이 바로
urlencode() 함수였다.
적용 전 코드와 적용 후 코드의 차이를 살펴보자.
적용 전 코드
$writer = $sql_row['writer'];
$writed_date =$sql_row['writed_date'];
$title = $sql_row['title'];
echo "<a href=$url?writer=" . $writer . "&writed_date=" . $writed_date . "&title=" . $title . ">";
echo "<strong>" . $sql_row['title'] . "</strong><br>";
echo "</a>";
안돼 내 레미제라블이 레가 되다니
적용 후 코드 (혹시나 다른 것에도 공백이 있을까봐 전부 urlencode를 넣어줬다)
$writer = urlencode($sql_row['writer']);
$writed_date = urlencode($sql_row['writed_date']);
$title = urlencode($sql_row['title']);
echo "<a href=$url?writer=" . $writer . "&writed_date=" . $writed_date . "&title=" . $title . ">";
echo "<strong>" . $sql_row['title'] . "</strong><br>";
echo "</a>";
레미제라블.. 돌아왔구나...!
'정보보안 및 해킹 > 웹 개발' 카테고리의 다른 글
[DB] DB에 이미지를 저장하는 여러가지 방법 (0) | 2024.05.06 |
---|---|
[System] Default Login System (0) | 2024.05.03 |
[CSS] 요소 수평 / 수직 정렬하기 (0) | 2024.04.23 |