Помощь · Поиск · Пользователи · Календарь
Полная версия этой страницы: Переход на новую вкладку с Flash и передача информации
Flash Zone Forum > Macromedia Flash > ActionScript
MichaelPak
Мне надо сделать следующее:
По нажатию кнопки во flah приложении у меня должна открыться новая вкладка с страницей, и при это должна передаться информация с приложения на эту же страницу.
Не поможете с реализацией?
Код AS3, который передает информацию в новую вкладку:
Код
navigateToURL(new URLRequest("http://cсылка которая должна открыться"));
var stat_loader:URLLoader = new URLLoader();
var stat_request:URLRequest=new URLRequest("cсылка которая должна открыться");// заменяем на ссылку к вашему скрипту
stat_request.method=URLRequestMethod.POST;
// добавление параметров в запрос
var stat_vars:URLVariables = new URLVariables();
stat_vars['auth_key']=auth_key;
//LoaderInfo(root.loaderInfo).parameters.auth_key;// auth_key из FlashVars
stat_vars['viewer_id']=viewer_id;
stat_request.data=stat_vars;
  
// выполнение запроса
stat_loader.load(stat_request);

Код php, который принимает информацию в новой вкладке:
Код
<?php
    if(!empty($_POST['viewer_id']))
    {
        session_start();
        $_SESSION['viewer_id'] = $_POST['viewer_id'];
    }
    echo '
           <script language="javascript">
               window.location.href = "page1.php";
           </script><br />
           ';
?>

P.S. Проверял через прокси-сервер Чарлез, там, скажем так, два запроса на одну страницу. И если написать вместо написанного выше кода php это:
Код
echo $_POST['viewer_id'];

то при методе ПОСТ выводит viewer_id, а при методе ГЕТ не выводит. как будто метод ГЕТ перекрывает и удаляет метод ПОСТ.
P.P.S Исправил
Код
stat_loader.load(stat_request);

на
Код
navigateToURL(stat_request, "_blank");

Все равно не работает.
P.P.P.S сделал передачу информации методо ГЕТ, пподставив значения переменных в ссылку, но это не очень безопасно, так как вбивь другой id можно получить информацию о другом пользователе. Можно ли это сделать методом ПОСТ или каким-нибудь другим способом?
MustLive
MichaelPak

Тему передачи данных из флеша на сервер (скрипту на php или другом языке) мы уже многократно на форуме рассматривали и приводили рабочие примеры кода. Как в этой теме. Есть лишь один момент - в основном все эти коды на AS1/AS2. Поэтому можешь сделать на AS 1 или 2, или если нужно только на AS3, то разбираешься с этими примерами и вычитываешь информацию по AS3 (хелпы, книги, мануалы) и реализуешь то же самое на AS3. А если что-то в этих примерах непонятно и переделать на AS3 у тебя не получается, тогда персонально обращайся к тем нашим участникам форума, которые владеют AS3.

Реализуй всё правильно и данные у тебя будут корректно передаваться. В том числе и через POST (а важные данные или большие объёмы данных передавай именно через POST).

Цитата
то при методе ПОСТ выводит viewer_id, а при методе ГЕТ не выводит. как будто метод ГЕТ перекрывает и удаляет метод ПОСТ.

Во-первых, непонятно какие у тебя проблемы с передачей данных, если скрипт их получает (и выводит через echo). Так что разберись со своим кодом на PHP - что именно ты хочешь сделать.

Во-вторых, никаких перекрытый. Работает через пост, потому что ты так передаёшь и принимаешь. Чтобы работало через гет - нужно указать stat_request.method=URLRequestMethod.GET в AS и использовать массив $_GET в PHP.

Цитата
P.P.P.S сделал передачу информации методо ГЕТ, пподставив значения переменных в ссылку, но это не очень безопасно, так как вбивь другой id можно получить информацию о другом пользователе.

POST не ненамного безопаснее GET и подделать данные легко можно и POST-запросом. И код, что ты привёл, является уязвимым - что при GET, что при POST запросе. Поэтому сделай как рабочую передачу данных через POST, так и переработай алгоритм, чтобы нельзя было устанавливать произвольные значения в сессионную переменную viewer_id.
Русская версия IP.Board © 2001-2013 IPS, Inc.