Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Flash и PHP (http://www.flasher.ru/forum/showthread.php?t=151424)

EndoCrinologist 27.02.2011 23:42

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

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

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

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

< ?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 для загрузки данных. Например так:
Код AS1/AS2:

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 код:

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

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

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

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

iNils 28.02.2011 00:53

Название темы не раскрывает сути вопроса.


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

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