2011-01-06 3 views
0

텍스트 영역을 특정 문자 수로 제한하고 나머지 문자 수를 사용자에게 알리는 JavaScript 함수를 작성했습니다. 이 제한은 특정 필드에 대해 MySQL에서 설정된 제한과 일치합니다.텍스트 영역의 문자 제한 - 이스케이프 된 따옴표 및 큰 따옴표는 MySQL에서 2자를 차지합니다.

PHP와 mysql_real_escape_string()을 사용하여 내용을 저장할 때 따옴표와 큰 따옴표 (백 슬래시와 다른 이스케이프 처리 된 것들은 모두)를 백 슬래시로 저장하므로 실제로 그 문자가 2 공백을 차지하므로 JS 함수를 부정확하게 렌더링합니다. 이 문제를 해결하는 방법에 대한 의견이 있으십니까?

편집 : deceze의 조언 마술 따옴표가 켜져 있는지 확인하고 get_magic_quotes_gpc()를 사용하여 확인합니다.

그러나 나는 또한 디렉토리의 .htaccess 파일을 확인하고이 플래그를 발견 : 분명히 마법의 따옴표를 해제하지 않는

php_value magic_quotes_gpc    0 

합니다. 왜 그런가?

답변

1

관계없는 슬래시를 저장하면 실제로 저장하려는 텍스트가 저장되지 않습니다.
magic quotes을 사용하도록 설정 한 것 같습니다. 그들을 비활성화하십시오.

+0

내가 아는 한, 마법 인용은 사용할 수 없습니다. 만약 내가 둔한 사람이라면 용서해주세요. 그러나 mysql_real_escape_string()을 사용하여 인용 부호가 포함 된 문자열을 이스케이프 처리하지 않을 것입니다. 이스케이프 된 문자 앞에 백 슬래시를 추가 하시겠습니까? 그런 다음이를 MySQL에 삽입하면 백 슬래시가 보존됩니다. 1 문자 (따옴표)를 2로 저장하는 것 같습니다. – zdyn

+0

@ZDYN mysql_real_escape_string을 사용하여 이스케이프 처리하면 텍스트를 db에 삽입하는 쿼리를 중단시키는 문자 만 이스케이프 처리합니다. 추가 슬래시는 데이터베이스에 저장되지 않습니다. 단순화 된 예 :''\ "따옴표 \". "는 문자열이''따옴표" "를 의미합니다. 슬래시는 문자열의 일부가 아니며 문자열 리터럴을 쓸 때 유효한 구문에만 필요합니다. 이 답변을 수락 했으므로 문제가 해결 된 것으로 보입니까? – deceze

+0

그 특정 문제에 대한 정답이지만, 이제 나는 왜 마법 인용을 해제 할 수 없는지를 알아내는 더 큰 문제가 있습니다. 로컬 .htaccess 파일을 무시할 수있는 것이 있습니까? – zdyn

관련 문제