PDA

Просмотр полной версии : Как передать знак & в URLVariables?


grafillo!
17.09.2013, 16:30
Как передать символы "/<& - по средствам URLVariables, и получить через xml?
суть в том что через xml они не передаются так как рисуют ошибки((
я пробовал такой способ, но не получилось
function sendMsg(){
var vars:URLVariables = new URLVariables('type=add&mes='+_escapeHtmlEntities(text_in.text)+
'&login='+login);

var requestmes:URLRequest = new URLRequest;
requestmes.url = "http://troll_ch/req.php";
requestmes.method = URLRequestMethod.POST;
requestmes.data = vars;
sendToURL(requestmes);
trace ("Энтрис"+_escapeHtmlEntities(text_in.text));
text_in.text = "\r";


}

function _escapeHtmlEntities(html:String) {
html = html.split("&").join('&amp;');
html = html.split('"').join('&quot;');
html = html.split("'").join('&apos;');
html = html.split("<").join('/u003c');
html = html.split(">").join('&gt;');
html = html.split("\\").join("\");
return html;
}

C4Grey
17.09.2013, 16:55
А почему бы не передавать переменные в виде ключ-значение? Вот так:
vars.type = 'add';
Есть еще вариант - как-то была похожая проблема, не декодировался JSON с экранированием слешей, решил кодированием JSON в base64, декодированием на серевере, и последующим разбором.

grafillo!
17.09.2013, 16:58
эмм, проблема в том что когда сервер мне выводит информацию которую я передал в XML , то прочитать этот эксемель невозможно потомучто все символы воспроизводятся как html элементы
Передать символы в бд можно, а вот как получить?

MikroAcse
17.09.2013, 21:02
Для передачи <> можно использовать URI:
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/package.html#encodeURI()
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/package.html#decodeURI()

Символы, которые не переводит URI: ; / ? : @ & = + $ , # - _ . ! ~ * ' ( )

C4Grey
17.09.2013, 22:58
Пишем:
vars.param = Base64.encode(html);
читаем:
var html:String = Base64.decode(myXML.child);
То есть в БД храним base64 строку, её же пишем в XML - она нужна чтобы читать её приложением, пользователю ведь все равно в каком там формате будет строка внутри XML. Или эта XML должна где-то еще, кроме приложения отображаться? Рекомендую библиотеку bloody crypto для base64, очень шустрая.

grafillo!
18.09.2013, 00:11
я наверное понял , не очень то и нужны были мне эти знаки х)