Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Проблема с post (http://www.flasher.ru/forum/showthread.php?t=204612)

Godwarlock 06.11.2013 18:41

Проблема с post
 
Код AS3:

var gid = '17157755';
var mess = 'site.ru';
 
var loader:URLLoader = new URLLoader();
var request:URLRequest=new URLRequest('http://localhost/test.php'); // адрес вашего скрипта
request.method=URLRequestMethod.POST;
 
var vars:URLVariables = new URLVariables();
vars['gid']=gid;
vars['mess']=mess;
 
request.data=vars;
loader.addEventListener(Event.COMPLETE, onComplete);
loader.load(request);
 
function onComplete(event:Event):void {
    // выводим полученные данные в поле result_tf
    result_tf.text=loader.data;
}

PHP код:

<?
// получаем параметры
$param1 $_POST['gid'];
$param2 $_POST['mess'];
 
// можно сделать что-то с полученными данными, например вывести
echo $param1;
echo 
$param2;
?>

Нашел на одном сайте пример использования post, но у меня почему-то в result_tf копируется весь php скрипт, вместе с кодом флеша и т.п, хотя должно 2 строчки показать с gid и mess. В чем проблема может быть?

Добавлено через 18 минут
Эту проблему решил. Помогите вывести логин и id пользователя

Код AS3:

import flash.events.MouseEvent;
import flash.net.URLRequest;
import flash.net.navigateToURL;
 
var id = 'id';
var login = 'login';
 
var loader:URLLoader = new URLLoader();
var request:URLRequest=new URLRequest('http://localhost/index.php'); // адрес вашего скрипта
request.method=URLRequestMethod.POST;
 
var vars:URLVariables = new URLVariables();
vars['login']=login;
vars['id']=id;
 
request.data=vars;
loader.addEventListener(Event.COMPLETE, onComplete);
loader.load(request);
 
function onComplete(event:Event):void {
    // выводим полученные данные в поле result_tf
    result_tf.text=loader.data;
}

<
PHP код:

?
} else {
  echo 
'Вы вошли на сайт!<br /> Ваш Логин: '.$userinfo["login"].'<br />Выш E-mail: '.$userinfo["email"].'<br /> <a href="/index.php?exit=y">Выход</a>';
}
$userinfo2$_POST['id'];
$userinfo $_POST['login'];
 
echo 
$userinfo;
echo 
$userinfo2;
?> 

Но что-то не выводится, так то в странице логин выводится и вроде всё норм, а вот во флеше по прежнему login и id и всё

Вот что выводит

<form method="post" action="/index.php">
Логин: <input type="text" size="30" name="login"><br />
Пароль: <input type="password" name="pass" size="30"><br />
<input type="submit" value="Войти">
</form>
<br /><a href="/register.php">Регистрация</a>
loginid<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ru" xml:lang="ru">
<head>
<title>test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css" media="screen">
html, body { height:100%; background-color: #ffffff;}
body { margin:0; padding:0; overflow:hidden; }
#flashContent { width:100%; height:100%; }
</style>
</head>
<body>
<div id="flashContent">
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400" id="test" align="middle">
<param name="movie" value="test.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="play" value="true" />

caseyryan 06.11.2013 19:16

У вас вывод в виде html
Флеш же ждет ответа в виде url variables то есть пар ключ->значение
попробуйте в php скрипте снести все, и сделать просто
PHP код:

<?php
   
echo "someKey=Blablabla&otherVal=blabla2";
?>

и все нормально выведется во флеше
Не знаю откуда был взят этот пример, но он кривой

Godwarlock 06.11.2013 21:33

Ничего не понимаю. Во флеше вывел someKey=Blablabla&otherVal=blabla2 токо без кавычек...А есть получше пример? Мне надо просто хотя бы вывести логин авторизованного юзера во флеш, но сколько не пытался, ничего не выходит(

caseyryan 06.11.2013 22:07

так в чем проблема переделать скрипт, чтобы он выводил логин?
PHP код:

<?php
     $userinfo 
$_POST['login'];
     echo 
"login=$userinfo";
?>

Ну а во флеше прочитать это
Код AS3:

function onComplete(event:Event):void {
    var params:Object = event.target.data;
    var login:String = String(params['login']);
    trace("Логин:", login);
}


Godwarlock 06.11.2013 22:54

Монтажный кадр 1, слой "Слой 1", кадр 1, строка 19 1120: Обращение несуществующего свойства e.

bav 06.11.2013 23:30

Код AS3:

var params:Object = event.target.data;

вместо
Код AS3:

var params:Object = e.target.data;

Пожалуйста, внимательней относитесь к копипасту.

Godwarlock 07.11.2013 00:09

ReferenceError: Error #1069: Не удалось найти свойство login в String; отсутствует значение по умолчанию.
at test_fla::MainTimeline/onComplete()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()

Код AS3:

import flash.events.MouseEvent;
import flash.net.URLRequest;
import flash.net.navigateToURL;
 
var login = 'login';
 
var loader:URLLoader = new URLLoader();
var request:URLRequest=new URLRequest('http://localhost/index.php'); // адрес вашего скрипта
request.method=URLRequestMethod.POST;
 
var vars:URLVariables = new URLVariables();
vars['login']=login;
 
request.data=vars;
loader.addEventListener(Event.COMPLETE, onComplete);
loader.load(request);
 
function onComplete(event:Event):void {
    var params:Object = event.target.data;
    var login:String = String(params['login']);
    trace("Логин:", login); }


caseyryan 07.11.2013 08:26

Нужно добавить лодеру тип данных variables, перед вызовом метода load
Код AS3:

loader.dataFormat        = flash.net.URLLoaderDataFormat.VARIABLES;


Godwarlock 07.11.2013 14:54

Спасибо большое...вот только как мне теперь вывести результат в самом флеше?
Попытался добавить text_tf.text=loader.data; так он туда опять весь текст html фигачит, потому что флешка вставлена в php код, но не logina ничего не показывает...

Добавлено через 9 часов 27 минут
php понимает о ком речь, то есть он выводит имя пользователя, в flash нет. Вместо логина, он просто login выводит, будто login это значение переменной, хотя значением должно быть имя пользователя...


Часовой пояс GMT +4, время: 16:38.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.