2010.03.24 08:57
엔터 개행문자 역슬래쉬 문제
조회 수 26729 추천 수 0 댓글 4
- ?
-
?
PHP 를 사용하여 입력하신 것 같습니다.
CUBRID는 기본적으로 입력시에 '(작은따옴표)만 입력시 두개 연속으로 입력하시면 되고 나머지는 상관없습니다.
PHP 에서는 r, n, " 등을 처리시 \r, \n, \" 로 처리하는 등, sql injection 을 위해 따옴표등이 처리대상이 되어 *_escape_string() 의 사용을 권장하기도 해서, 이를 사용하는 것 같습니다. 저도 PHP 전문가가 아니라서...
따라서 mysql_escape_string() 이 호출되지 않도록 하여주셔야 합니다. CUBRID 와는 규칙이 다르니...
저도 오래되서 방법이 기억이 나지 않아, 찾아보고 알려드리도록 하겠습니다. -
?
아 ㅎㅎ 감사합니다~
-
?
php.ini 설정을 먼저 확인해 보시기 바랍니다.
magic_quote_gpc = 0 으로 설정하시면 됩니다.
그런데 이미 0 이라면 *_escape_string() 이나 addslashes() 가 불리는 것 같습니다. 이 함수들이 불리지 않도록 하여야 합니다.
찾기 어려우시면 PHP 의 함수 재정의 기능을 사용하시면 됩니다. 함수명은 overide_function 입니다.
orveride_function('mysql_real_escape_string', '$string', 'return $string;');
orveride_function('mysql_escape_string', '$string', 'return $string;');
이 내용은 항상 참조되어지는 기본 include 화일에 넣어두셔야 합니다.
create table test2 (col1 char(50));
insert into test2 values('rn');
select * from test2;
테스트 결과 rn 로 출력이 되었습니다.
문제가 된 CUBRID 버젼과 OS를 알려주시면 문제 해결에 큰 도움이 될 것으로 보입니다.