Форум Flasher.ru

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

Jomei 10.01.2011 12:02

Проблема с чтение данных с Perl скипта
 
Здраствуйте у меня возникла небольшая проблемка с AS 3.0 + Perl.
В общем ActionScript скрипт при обращении в Perl скрипт должен выводить значение некой переменной которая находится в Perl скрипте. Код на AS 3.0 написан правильно, я это понял когда извлекал значение переменной с .txt файла и что самое удивительно с .php скрипта. В общем с .txt и .php всё отлично работает, а вот с Perl выводит значение unfined. Щас объясню подробнее с примерами:
Пример с простым текстовым файлом (TXT):
Основной код AS 3.0:
Код AS3:

package {
        import flash.display.*;
        import flash.events.*;
        import flash.net.*;
 
        public class URLVariablesExample extends MovieClip {
 
                public function URLVariablesExample() {
                        var loader:URLLoader = new URLLoader();
                        var request:URLRequest = new URLRequest("index.txt");
                        loader.dataFormat=URLLoaderDataFormat.VARIABLES;
                        loader.addEventListener(Event.COMPLETE, handleComplete);
                        loader.load(request);
                }
 
                public function handleComplete(event:Event):void {
                        var loader:URLLoader = URLLoader(event.target);
                        trace("someText = " + loader.data.someText);
                }
        }
}

Код текстового файла (TXT):
someText=This is text from TXT file

При компиляции AS 3.0 скрипта, в окне Output нам выдастся текст: someText = This is text from TXT file
С TXT работает!

Пример с PHP скриптом:
Тот же код AS 3.0 только меняем в нем путь к PHP скрипту на сервере:
Код AS3:

package {
        import flash.display.*;
        import flash.events.*;
        import flash.net.*;
 
        public class URLVariablesExample extends MovieClip {
 
                public function URLVariablesExample() {
                        var loader:URLLoader = new URLLoader();
                        var request:URLRequest = new URLRequest("http://localhost/index.php");
                        loader.dataFormat=URLLoaderDataFormat.VARIABLES;
                        loader.addEventListener(Event.COMPLETE, handleComplete);
                        loader.load(request);
                }
 
                public function handleComplete(event:Event):void {
                        var loader:URLLoader = URLLoader(event.target);
                        trace("someText = " + loader.data.someText);
                }
        }
}

Код PHP скрипта:
PHP код:

<?php
$otherText 
"This is text from PHP script";
echo 
"someText=$otherText";
?>

При компиляции AS 3.0 скрипта, в окне Output нам выдастся текст: someText = This is text from PHP file
С PHP работает!

И наконец-то пример с Perl скриптом:
Тот же код AS 3.0 только меняем в нем путь к Perl скрипту на сервере:
Код AS3:

package {
        import flash.display.*;
        import flash.events.*;
        import flash.net.*;
 
        public class URLVariablesExample extends MovieClip {
 
                public function URLVariablesExample() {
                        var loader:URLLoader = new URLLoader();
                        var request:URLRequest = new URLRequest("http://localhost/cgi-bin/index.pl");
                        loader.dataFormat=URLLoaderDataFormat.VARIABLES;
                        loader.addEventListener(Event.COMPLETE, handleComplete);
                        loader.load(request);
                }
 
                public function handleComplete(event:Event):void {
                        var loader:URLLoader = URLLoader(event.target);
                        trace("someText = " + loader.data.someText);
                }
        }
}

Код Perl скрипта:
Код:

#!/usr/bin/perl
print "Content-type: text/plain\n\n";
$otherText = "This is text from Perl script";
print "someText=$otherText";

При компиляции AS 3.0 скрипта, в окне Output нам выдастся текст: someText = unfined
С Perl не работает!

Гуру AS 3.0/Perl объясните в чем ошибка?
Я предполагаю что, что-то с Perl скриптом возможно не так, но что? При вводе адресса (http://localhost/cgi-bin/index.pl) в браузере, пишет что всё хорошо:
someText=This is text from Perl script
И с PHP так же само, всё хорошо. Но почему флешка выводит unfined только с Perl скриптом, а не текст: This is text from Perl script?

leofit 10.01.2011 16:16

Честно говоря я делек от PERL`a, но разве
Код:

print "Content-type: text/plain\n\n";
не выведет строку напрямую в браузер? Насколько я понимаю, Вы хотите отправить http header? В том же пхп это делается через header('...'), думается и перле должно быть что то похожее, попробуйте просто убрать эту строку

Jomei 10.01.2011 20:46

Loefit нет, эта строка там и должна быть, если её убрать в любом случае выдаст ошибку, я проверял.
В общем я уже разобрался в чем дело, вся информация по Perl здесь изложена верно, просто походу надо было перезагрузить сервак, вот и всё... Но как по мне всё равно странная штука получилась, PHP работало и без перезагрузки, а с Perl проблемы, в общем перезагрузил всё, по новой запустил и работает.


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

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