2011-01-23 3 views
1

저는 PHP와 MySQL을 사용하여 기본 포럼을 강화하고 있습니다. 사용자가 아포스트로피 (')를 사용하거나 게시물에 링크를 삽입하면 mysql_real_escape_string 함수가 텍스트에 \를 추가합니다. 게시물을 표시 할 때 링크가 작동하지 않고 모든 아포스트로피 앞에 \가 있습니다.데이터베이스에 쓰기 전에 데이터를 정리하는 더 좋은 방법

텍스트를 출력하기 전에 어떤 일을하지 않거나 MySQL에 쓰기 전에 데이터를 올바르게 정리하지 않는 문제가 있습니까?

답변

2

마술 인용 부호가 켜져 있습니까? 당신은 너무 같은 PHP 페이지를 작성하여 신속하게 확인할 수 있습니다 페이지 int(1) 같은 것을 말한다

<?php var_dump(get_magic_quotes_gpc()) ?> 

경우, 범인은 mysql_real_escape_string 아니라, PHP 자체. 그것은 보안 기능 이었지만 안전하지는 않았으며 주로 성가심이있었습니다. 각 변수를 살균하기 전에 먼저 slashing을 stripslashes으로 실행 취소해야합니다.

0

또한이를 이용하여 마법 따옴표를 해제 할 수 있습니다 : 서버가 5.3.0보다 PHP의 모든 버전을 실행하는 경우

if (version_compare(PHP_VERSION, '5.3.0', '<')) { 
    set_magic_quotes_runtime(0); 
} 

그것은 마법을 켜집니다 오프 인용.

관련 문제