PDA

Просмотр полной версии : Flash и PHP


EndoCrinologist
27.02.2011, 23:42
Здравствуйте. Родил идею создать небольшой flash-чат.
Подскажите ПРОСТОЙ код кнопки, которая отправляет данные в PHP-файл, а сам PHP файл, отправляет ответ в SWF-файл (например, пользователь не ввел авторизационные данные (пустые поля), а сервер должен отправить обратно в текстовое поле фразу "Вы не ввели данные!", не перезагружая страниц). Помогите, пожалуйста

Добавлено через 13 минут
Так... вроде бы с отправкой разобрался... Код кнопки:

on(release) {
loadVariables ("auth.php?Name="+_root.nickA+"&Pass="+_root.parA, "_root");
}


Этот скрипт отсылает данные на файл, в котором:

< ?php
if (($Name == "")||($Pass == "")){
$stat = "Вы не ввели ник или пароль!";
}
? >


Переменная $stat - и есть та самая строка, которая выдает сообщение об авторизации в SWF-ФАЙЛЕ!

Но после нажатия кнопки в swf-файле, trace выдает следующее сообщение:

Error opening URL "file:///Z|/home/flashchat.ru/www/auth.php?Name=&Pass="

Неужели что-то неправильно?:(

Hauts
28.02.2011, 00:39
1. PHP не выдаст ничего, если просто так к файлу обращаться. Вы же Denver используете, верно? В браузере введите адрес http://flashchat.ru/ваша_флэшка.swf. Ну или из среды разработки тестируйте, только путь к php-скрипту указывайте абсолютным (http://flashchat.ru/script.php)

2. Не пишите код на клипах, пишите в кадрах.

3. Используйте LoadVars для загрузки данных. Например так:

function loadFromPHP(){
var lv = new LoadVars();
lv.messageToPHP = "Hello from flash!"
lv.sendAndLoad("script.php", lv, "POST");
lv.onLoad = function(success){
if(success){
txt.text = this.message;
} else {
txt.text = "error";
}
}
}
someButton.onPress = function(){
// this.enabled = false;
loadFromPHP();
}


script.php должен лежать рядом с флэшкой. someButton — это instance name кнопки на сцене. Весь код в кадре. txt — текстовое поле на сцене.

PHP:

<?php
$message = $_REQUEST['messageToPHP'];
echo "message=Hello from PHP (time = ".time().")";
?>


В php чтобы получить данные из флэшки, необходимо инициализировать переменные. Если вы не знаете, каким образом они будут передаваться, используйте $_REQUEST. Если знаете — $_POST и $_GET в помощь.

В вашем случае $Name и $Pass изначально не определены.

Ну и проверку на такие пустяки, как пустые поля рациональнее делать внутри флэшки, а не в php.

iNils
28.02.2011, 00:53
Название темы не раскрывает сути вопроса.