Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   вставка PHP-функции в код ActionScript кнопки (http://www.flasher.ru/forum/showthread.php?t=127775)

zirjan85 23.07.2009 01:24

вставка PHP-функции в код ActionScript кнопки
 
У меня вот такая проблема: я все ломаю голову, как мне выполнять в сценарии ActionScript обычной кнопки PHP-сценарий. Вот что я хочу сделать: on (release) {getURL("http://stranica.php?"+<?php echo"".session_name("s")."=".session_id()."" ;?>+"", "_self", "POST")} .Вобщем вы поняли, что я желаю передавать моей кнопке параметры сессии прямо в нее саму, т.е. в строку getURL-а в "http://stranica.php?"+параметры сессии на PHP+"", "_self", "POST". Поясняю сразу же, мой SWF-файл - т.е. моя кнопка сделана во Flash-e без каких-либо полей формы - т.е. чистая кнопка, а вставил я ее в PHP- страницу. Подскажите, плиз, как это можно реализовать. Я сделал таким макаром, но этот вариант не работает! В чем дело, подскажите, пожалуйста!

JinRu 23.07.2009 03:07

Я бы удивился, если бы это сработало
PHP выполняется на стороне сервера
SWF работает на стороне клиента
зачем вообще передовать session id?

IDmitry 23.07.2009 03:35

А в коде кнопки не хочется запустить SQL Server и выполнить пару запросов???

Флеш, по сути, - клиентское выполнение, а ПэХаПэ - серверное. Мешать их особо не получится.
А если нужен АйДи сессии, то что мешает передать вместе со страницей? Или аджаксом получить?

Juice_Green 23.07.2009 07:23

to @IDmitry:
Цитата:

Или аджаксом получить?
ну это уже перебор, во флеше и так можно послать асинхронный запрос

to @zirjan85:
используйте flashvars, либо
используйте LoadVars

zirjan85 23.07.2009 08:42

Цитата:

Сообщение от JinRu (Сообщение 837477)
Я бы удивился, если бы это сработало
PHP выполняется на стороне сервера
SWF работает на стороне клиента
зачем вообще передовать session id?

Мне нужно, чтобы при нажатии кнопки на странице осуществлялся переход на другую страницу и при этом сессия не прерывалась. А у меня прерывается.

Добавлено через 8 минут
Цитата:

Сообщение от Juice_Green (Сообщение 837490)
to @IDmitry:

ну это уже перебор, во флеше и так можно послать асинхронный запрос

to @zirjan85:
используйте flashvars, либо
используйте LoadVars

Я уже пробовал и flashvars и LoadVars, но у меня в адресной строке выдает undefined и в принципе, как я увидел, функции PHP вобще не выполняются.

alexcon314 23.07.2009 08:54

Код:

myLoadVars.load("http://stranica.php?"+<?php echo"".session_name("s")."=".session_id()."" ;?>+"", "_self", "POST");
Вы LoadVars так использовали? Или все-таки не так?

zirjan85 01.08.2009 23:02

Цитата:

Сообщение от alexcon314 (Сообщение 837498)
Код:

myLoadVars.load("http://stranica.php?"+<?php echo"".session_name("s")."=".session_id()."" ;?>+"", "_self", "POST");
Вы LoadVars так использовали? Или все-таки не так?



У меня через LoadVars не получалось, возможно что-то я не дописывал в коде, как я понял. Я тут полазил ещё раз в интернете и нашёл ответ на мой вопрос:moder:. Вот он:

on (release, keyPress "<Enter>"){


instance1.onRelease = function(){ var ps:LoadVars = new LoadVars();
ps.load("z.php");
ps.onData = function(str:String){
getURL(str);
}
}

}


Спасибо ВСЕМ, кто ответил в этой теме!!!!!!!!!:)

wvxvw 02.08.2009 22:12

Когда PHP отдает станицу - он может записать в нее SID, во FlashVars, они потом доступны в _level0 внутри SWF. т.е. если вы написали что-то типа:
Код:

<?php
...
print "<param name=\"FlashVars\" value=\"sid=" . SID . "\"/>";
...
print "<embed ... FlashVars=\"sid=" . SID . "\" ... />";

То ваша переменная будет во флеше тут:
_level0.sid

Но если вам нужен SID для того, чтобы выяснить а существует ли еще сессия, то:
AS
Код AS1/AS2:

import mx.utils.Delegate;
var lv:LoadVars = new LoadVars();
myBytton.onRelease = Delegate.create(this, myButtonDelegate);
lv.onLoad = Delegate.create(this, lvOnLoadDelegate);
function myButtonDelegate():Void
{
    lv.load("my.php?whats-my-sid");
}
function lvOnLoadDelegate(success:Boolean):Void
{
    trace(lv.sid);
}

PHP
Код:

<?php
print "sid=" . SID;



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

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