As3 & PHP URLEncoding проблема! - PullRequest
1 голос
/ 30 мая 2010

Я застрял с глупой проблемой кодирования.

Моя проблема в том, что все мои акцентированные символы отображаются как странные изо-символы.

Пример: отображается é% E9

Я отправляю строку в свой php файл:

XMLLoader.load(new URLRequest(online+"/query.php?Query=" + q));
XMLLoader.addEventListener(Event.COMPLETE,XMLLoaded);

Когда я прослеживаю q, я получаю:

"INSERT INTO hello_world (сообщение) значения ( 'ЕААА'); "

ХОРОШИЙ запрос

Мой php-файл выглядит так:

<?php 

include("conection.php");//Conectiong to database

$Q = $_GET['Query'];

$query = $Q;
$resultID = mysql_query($query) or die("Could not execute or probably SQL statement malformed (error): ". mysql_error());

$xml_output = "<?xml version=\"1.0\"?>\n"; // XML header
$xml_output .= "<answers>\n";

$xml_output .= "<lastID id=".'"'.mysql_insert_id().'"'." />\n";

$xml_output .= "<query string=".'"'.$query.'"'." />\n";

$xml_output .= "</answers>";

echo $xml_output;//Output the XML

?>

Когда я возвращаю свой XML во флэш-память, $ запрос выглядит так:

"INSERT INTO hello_world (сообщение) значения ( '% E9% E0A% E0'); "

И эти значения затем отображаются в моей БД, что раздражает.

Буду признателен за любую помощь! Приветствия.

Jk_

Ответы [ 4 ]

1 голос
/ 30 мая 2010

urldecode выполнит эту работу.

В дополнение к этому, очень плохая практика - отправлять подобные запросы. Отправьте необходимые данные, отфильтруйте их и затем создайте запрос, если только вы не создаете клон phpMyAdmin.

0 голосов
/ 30 мая 2010

$ q = mysql_real_escape_string (код url ($ _ GET ['Query']));

0 голосов
/ 30 мая 2010

Моя проблема теперь решена!

Как записано выше andr , использовать GET для отправки запросов действительно плохая идея.

Кажется, что когда я отправлял данные из Flash, используя:

XMLLoader.load(new URLRequest(online+"/query.php?Query=" + q));

URL был закодирован, и даже с помощью urldecode я получил пустую запись в своей БД.

Так что благодаря andr и raz-l я изменил способ отправки данных в свой php-файл.

Во флэш-памяти я использую URLVariables, а в PHP я строю свой запрос:

variables = new URLVariables();
variables.Query = "éàûï ceci est un test...";
request.method = URLRequestMethod.POST;         
request.data = variables;
XMLLoader.load(request);

И мой php-файл выглядит так:

$Q = mysql_real_escape_string($_POST['Query']);
$query = "INSERT INTO hello_world (message) values ('".$Q."')";

Jk_

0 голосов
/ 30 мая 2010

flash может запрашивать URL с закодированным параметром / строкой запроса, поэтому декодируйте его в php, используя urlencode.

* 1003 т.е. *

$ Q = urldecode ($ _ GET ['Query']);

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