2010-08-18 10 views
0

간단한 질문입니다. Javascript에서 PHP 스크립트로 데이터를 보내 데이터베이스에 저장 한 다음 다시 같은 방식으로 가져오고 싶습니다 (스크립트에서 PHP 함수를 호출하고 데이터가 JSON으로 다시 전송됩니다).특수 문자 이스케이프

자바 스크립트에서 어떤 기능을 사용해야합니까? PHP로만 데이터를 가져올 필요가 없습니다. 따라서 escape(string);을 입력하고 unescape(encoded_string);을 표시하면됩니다.

감사합니다. 프랑스
감사합니다;)

편집 : 언급하는 것을 잊었다 : 데이터가 URL에 전송을위한 사용자 입력에서 문자열 (따라서 보안 문제)

답변

2

사용 encodeURIComponent()입니다. 데이터가 서버로 전송됩니다

function sendData(str) 
{ 
    var url = "http://myserver.com/upload?data="+encodeURIComponent(str); 
    ajax(url); 
} 

, 서버해야 자동으로 수동으로 할 필요가 없습니다, URL에 전송 된 데이터 decode합니다. (필자는 PHP에 익숙하지 않지만 내가 틀렸다면 누군가 나를 교정합니다.) URL로 전송되지 않기 때문에 클라이언트로 전송되는 데이터를 인코딩 할 필요가 없습니다.

주의 그냥 단어

:

당신이 데이터를 escape() 경우

다음 unescape() 그 후, 모든 html 태그, 자바 스크립트하고 원래 사용자가 입력 한 다른 것들 정확히 복원됩니다. 따라서 데이터를 표시하기 전에 이러한 사항을 제거하십시오.

은 참조 : http://xkr.us/articles/javascript/encode-compare/

+0

것은이고, 나는 메시지의 본문을 포함하여, 그에게 pramaeters의지도를주고, jQuery의 $ .getJSON() 함수를 사용하여 데이터를 전송하고 있습니다. 그래서', encodeURIComponent()만으로는 충분하지 않습니다. 왜냐하면 따옴표는 é, è, à, $, #,!,?와 같은 특수 문자에만 적용되기 때문에 충분하지 않습니다. – 3rgo

+0

@ Squ36'encodeURIComponent()' ~! *() '를 제외한 모든 것을 인코딩하지만 JSON은 일반적으로 큰 따옴표 (")를 사용하므로 문제가되지 않으며 URL에 특별한 의미가 없다고 생각합니다. 그들을 대체 할 필요는 없습니다. – Na7coldwater