일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 백준 1449 타입스크립트
- 백준 1018 javascript
- 백준 2503 javascript
- 백준 2503 자바스크립트
- 백준 11047 자바스크립트
- 백준 11047 nodejs
- CSS
- 백준 2503 nodejs
- 백준 1449
- 백준 1449 자바스크립트
- 백준 11047 typescript
- 백준 2503 typescript
- 백준 4796 자바스크립트
- 백준 11047 타입스크립트
- 백준 4796 nodejs
- 백준 1449 javascript
- 알고리즘
- 백준 1018 nodejs
- 백준 1018 typescript
- 백준 1449 노드
- 백준 4796 타입스크립트
- 백준 4796 javascript
- 백준 4796 캠핑
- 백준 1018 자바스크립트
- 백준 1449 nodejs
- 백준 1018 타입스크립트
- JavaScript
- 백준 10448 javascript
- 백준 2503 타입스크립트
- 백준 11047 javascript
- Today
- Total
POTATO THAT WANT TO BE HUMAN
[PHP] 따옴표 처리 - addslashes() 본문
~~ 평화로운 홈페이지 프로젝트 중 게시판을 작업 중 ~~
게시글 제목에 따옴표("")를 작성했는데 오류가 발생해 작성에 실패했습니다.
왜 ?! 왜냐면요 ...
php에서는 DB작업을 하기 위해 쿼리를 작성합니다.
이때 DB 시스템은 작은 따옴표(')와 큰 따옴표("), 백슬래시(/), Null byte를 문자열을 구분하는 기준으로 이용합니다.
그런데, 하나의 문자열 안에 따옴표가 들어가 있게되면 오류가 발생하게 됩니다.
그렇기때문에 문자열을 데이터베이스에 저장할 수 있는 포맷으로 변화시켜줄 필요가 있습니다.
아 ! 따옴표도 따로 처리를 해줘야하는구나 !
그렇다면!!
따옴표는 어떻게 처리해줘야하나요?!? 📌
php에서 따옴표를 처리해주기 위해서는 addslashes() 함수를 이용해야합니다.
addslashes()는 내부에 올 따옴표들을 기준을 가지고 다르게 표현해줍니다. (이스케이프시킨다 ..)
함수 사용법은 addslashes(변환할 문자열); 입니다.
<?php
$str = "hello. i'm nehing";
$result = addslashes($str);
echo $result; // hello. i\'m nehing
?>
반대로 원래 문자로 출력하고싶으면요?!? 📌
그럴땐 stripslashes()를 사용하면 됩니다.
사용법은 stripslashes(변환할 문자열); 입니다.
<?php
$str = "hello. i\m nehing.";
$result = stripslashes($str);
echo $result; // hello. i'm nehing.
?>
여기서 대박적인 것 !
이 작업을 자동으로 해주도록 php를 설정하는 방법도 있습니다.
자동으로 이스케이프해준다구요?! 📌
예. 그걸 magic_quotes_gpc 라고 합니다.
gpc는 get, post, cookie입니다.
즉, GET, POST, COOKIE 를 통해 넘어오는 값들에 대해 자동으로 이스케이프를 시켜주는 기능입니다.
php파일을 살펴보면 php.ini 파일이 있습니다.
파일을 열고 get_magic_quotes_gpc를 찾아 옵션을 on으로 설정해주면 됩니다.
만약! get_magic_quotes_gpc가 on으로 설정되어있는 상태에서
문자열에 addslashes()를 또 사용한다면 두번 이스케이프 처리가 되므로 주의해야 합니다.
'BACKEND > PHP' 카테고리의 다른 글
[PHP] php세션(Session) (0) | 2022.04.01 |
---|---|
[PHP] php란? (0) | 2022.01.18 |