2010-07-16 6 views
0

PHP 스크립트에서 일부 데이터를 요청하는 간단한 flex 클라이언트가 있습니다. URLLoader를 사용하여 PHP에 매개 변수를 전달하고 응답을 기다립니다. 매개 변수의 값에는 임의의 문자가 포함될 수 있으므로 플렉스면에서 PHP 스크립트에 값을 전달하는 이스케이프 함수를 사용하고있었습니다. 플렉스 이스케이프가 모든 문자와 PHP의 동등한 urlencode가 동일한 데이터에서 다른 결과를 가지고 작동하지 않는다는 것을 알아 냈습니다.Flex 및 PHP의 URL 인코딩

내 질문은 어떻게 안전하게 PHP 스크립트에 문자열을 (모든) 전달할 수 있습니다. 한 가지 제안은 GET 대신 POST를 사용하거나 64를 기반으로 문자열을 인코딩하는 것이지만 base64 자체에는 URL 안전 문자가 포함되어 있지 않습니다. 예를 들어 +는 PHP에서 공백으로 변환됩니다.

+0

이 [이스케이프 기능] (http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/package.html#escape%28%29)을 사용 했습니까? 어떤 문자가 제대로 이스케이프 처리되지 않았는지 - 코드를 게시 할 수 있습니까? – Amarghosh

+0

예, 내가 언급 한 escape() 함수를 사용했습니다. 다음과 같은 단일 함수 호출입니다. var request : URLRequest = new URLRequest ("http://myserver.com/sc.php?name="+ escape (parameter)); 그런 다음 URLLoader를 사용하여 요청을 보냅니다. PHP 스크립트에서 빈 공간으로 변환 되었기 때문에 +와 문제가있었습니다. 그리고 이스케이프는 + 문자 인코딩을 지원하지 않습니다. – user393456

답변

1

URL의 문자열 인코딩에 encodeURIComponent을 사용하십시오. 변수에 + 및 기타 문자를 인코딩합니다. 부호화해야 일반 텍스트로서 : (@ & = + $ #? /)

이 함수는이 특별한 구분 문자 URI 구성 요소를 처리하는 것으로 가정한다.