Получение разных символов, отправленных из одной и той же флэш-формы, если они отправлены из IE и FF - PullRequest
1 голос
/ 01 августа 2011

Я использую FLASH-форму, встроенную в html, которая использует кодировку utf8 для отправки переменных и изображений в php-скрипт, который сохраняет их mysql.

Во флэш-памяти я использую метод fileupload,

var loc:*=new flash.net.URLRequest("http://url.com/code.php?s=1&name=" + vardas.text + "&email=" + email.text); fileHandler.upload(loc);

Проблема в том, что когда я открываю и заполняю форму в INTERNET EXPLORER, я не получаюПеременные UTF-8 в php, но если я использую CHROME или FIREFOX, я получаю их правильно.

Есть ли разница в том, как IE и другие браузеры отправляют данные?Или мне нужно каким-то образом кодировать переменные в сценарии действия?

Жду идей, спасибо за чтение.

РЕДАКТИРОВАТЬ: Возможная проблема - URL в IE не поддерживает символы типа č, а CHROME AND FFДЕЛАЕТ?

Ответы [ 2 ]

1 голос
/ 01 августа 2011
// fileHandler.upload(loc); // will not encode the data to utf-8



var urlLoader:URLLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.TEXT;

// add your event listeners
urlLoader.addEventListener(Event.COMPLETE, completeHandler );
urlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, secErrorHandler );
urlLoader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler );

var request:URLRequest = new URLRequest( "http://url.com/code.php" );
requestVars.name = vardas.text;
requestVars.email = email.text;
request.data = requestVars
//request.method = URLRequestMethod.GET;
request.method = URLRequestMethod.POST;

try {
  urlLoader.load( request );
} catch (e:Error) {
  trace(e);
}



[РЕДАКТИРОВАТЬ]
Вот еще один пример, который должен работать на основе вашего кода, но предпочтительным методом будет первый пример.

//You should always validate any input from the user that they can manually 
// enter on both client and server side. This will help prevent a plethora
// of things including data injection and many other hacking techniques.

var url:String = 'http://url.com/code.php?s=1'
    url += '&name='  + escape( vardas.text ); 
    url += '&email=' + escape( email.text );

var loc:*=new flash.net.URLRequest(url);

 fileHandler.upload(loc); 
0 голосов
/ 01 августа 2011

У вас есть этот заголовок на вашей HTML-странице?

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...