PDA

Просмотр полной версии : Передача данных методом POST.


Xero201
10.11.2009, 02:17
Задача 1 - передать данные из swf в php методом POST
Попробовал сделать так:
AS:
send_btn.addEventListener(MouseEvent.CLICK, sendData);
function sendData(e:MouseEvent) {
var request:URLRequest = new URLRequest( "http://site/target.php" );
var variables:URLVariables = new URLVariables();
variables.txt = "данные";
request.data = variables;
request.method = URLRequestMethod.POST;
navigateToURL( request);
}

PHP:
<?php
$post = $_POST['txt'];
$get = $_GET['txt'];

echo "POST: $post \n";//ничего не выводит
echo "GET: $get \n";//выводит переданные данные
?>

Но ведь выбран метод POST, а не GET.:rtfm:

И еще, если это русский текст, то он отображается в неправильной кодировке, хотя сохраняется нормально:
echo "GET: $get "; // GET: данные :(
$f = fopen("result.txt", "w");
fwrite($f,"Text= $get");//Text= данные
fclose($f);
:o

bicubic_bublic
10.11.2009, 02:29
кодировка судя по всему utf-8 и это правильно
попробуйте
request.method = "POST"

Xero201
10.11.2009, 02:47
кодировка судя по всему utf-8 и это правильно
Да, действительно! php-файл был пробный без всяких метатегов.
Добавил и проблема с кодировкой исчезла, но данные все равно передаются GET-ом.

Добавлено через 2 минуты
попробуйте
request.method = "POST"
не помогло(

bicubic_bublic
10.11.2009, 03:17
не помогло(

А вы флешку из браузера запускаете?

Antisly
10.11.2009, 05:24
Вместо navigateToURL надо
var loader:URLLoader = new URLLoader();
loader.load(request);

Felicast
10.11.2009, 10:11
Вместо navigateToURL надо
var loader:URLLoader = new URLLoader();
loader.load(request);
а вы знаете различия между navigateToURL и URLLoader?

bicubic_bublic
10.11.2009, 10:29
гугл говорит, что баг известный. лечится запуском флешки из браузера (возможно)

kackbip
10.11.2009, 11:32
а вы знаете различия между navigateToURL и URLLoader?
Расскажите

bicubic_bublic
10.11.2009, 11:34
Расскажите

URLLoader служит для внутренней передачи данных серверу

navigateToURL служит для перехода по ссылке

kackbip
10.11.2009, 17:37
Ну да, это понятно.
А почему запрос GETом отправляется?

DarkLight
10.11.2009, 18:13
Если из среды разработки запускать - потому что по другому не умеет.

kackbip
10.11.2009, 19:43
Ага, спасибо.

Xero201
10.11.2009, 20:21
гугл говорит, что баг известный. лечится запуском флешки из браузера (возможно)

Большое спасибо. Я даже и не думал про баги. Из браузера все работает нормально. Вопрос закрыт)

Добавлено через 1 минуту
Если из среды разработки запускать - потому что по другому не умеет.

Не, даже если запускать с swf, все равно гетом шлет