Просмотр полной версии : urlloader и echo
Помогите разобраться, если не сложно! Не могу понять как взаимодейтсвуют flash и php. ну тоесть в общем принципе я разобрался:
я делаю запрос к php скрипту и тот вы полнив действия на стороне сервера возвращает мне в приложение результат. причем, результат в php скрипте выводится при помощи echo(как я понял из обучалок и туториалов) а ловится флешем по событию complete повешенному на лоадер. правильно?
так вот. вопрос, вернее даже несколько - если echo в скрипте может встречаться множество раз, то что же в итоге придет мне в флешку? массив? или вообще я не в ту сторону думаю?)
собственно, к чему вопрос - я написал первый свой скриптик и как водится в итоге ничего не работает. писал я в простеньком редакторе и сразу залил на удаленный сервер, ибо код простейший(должен был быть)). но посколькю локально я его не тестил, то ошибок, я полагаю, там множество, вернее не ошибок, а недосмотров и непонятых моментов... сообственно - есть ли возможность как-то получать логи работы скрипта(ну что-то типо trace() в as 3.0 ), тоесть отлаживать его работу прямо на сервере(думал выводить эти самые "логи" через echo во флеш а там уже выводить на экран, стоит ли так делать?), и не устанавивая каких-то адских девайсов(посмотрел в интернете и напугался))??
ну и соответсвенно, если без дополнительного софта не обойтись, то что лучше - тестить локально(тоесть я так понимаю делать локальный сервер и все такое) или тестить на сервере? что удобнее и проще?)
заранее благодарен за ответы)
код бы хоть какой-нить прикрепили :)
Если время между echo меньше, чем таймаут - должны прийти одним пакетом. Массивом они не станут, просто одна строка продолжит другую.
Если вы не дружите с ssh, vim и т.д., то отлаживать всегда придется вначале локально. Гонять мизерные изменения туда-сюда выйдет дольше, чем поднять один раз локальный сервер.
серверные логи пишите в файлы на сервере, пых обладает достаточным количеством вариантов как это сделать.
так а какой код-то?) вопрос не по конкретному скрипту) ошибки я исправлю.. скорее думаю как организовать свою работу) просто "поднимать" локальный сервер, мне показалось чем-то жутким.=) заполнение разных тхт фаилов кучами непонятых директив и прочие ужасы... ну да ладно)
что касается логов на сервере.. ээ.. как грамотно гуглить на эту тему? те как этот процесс называется?
знаю топроный вопрос, но в пхп столкнулся в необходимости крайне точных формулировок - иначе ничего не найти(
про локальный тест - нужно будет так же локально создавать бд? или делать локальный сервер но запросы с него(щито?) отправлять уже на хостинг с базой данных?
Добавлено через 26 минут
поправлюсь - про логи нашел)
скачайте Denwer (http://www.denwer.ru/), например - он уже комплектом идет, пых, мускуль, апач. устанавливается максимально просто, про настройки написано кучу всего.
Иметь локальную базу (хотя бы с тестовыми выборками) тоже очень хорошо.
Про логи... ну, вбейте в поиск php fopen fputs fclose раз такая проблема.
caseyryan
28.02.2013, 13:40
Есть простой способ проверить что происходит в коде через браузер.
В скрипте можно написать что-то типа:
<?php
$p = count($_POST) > 0 ? $_POST : $_GET;
?>
И пользоваться массивом $p.
Так можно запрос делать либо постом из флешки, либо через гет в браузере. В браузер можно ввести нужный запрос и посмотреть его результат
Есть простой способ проверить что происходит в коде через браузер.
<?php
$p = count($_POST) > 0 ? $_POST : $_GET;
?>
Ну несовсем корректно. Может быть и GET и POST в сценарии.
Добавлено через 9 минут
pall92, скачай denwer, там нужно запустить 1 экзешник и куча директив в текстовых файлах пропишутся автоматически и БД, и PHP поднимется.
caseyryan
28.02.2013, 16:20
Ну несовсем корректно. Может быть и GET и POST в сценарии.
Да, но с такой схемой во флешке можно ничего не править и использовать только POST. Я для отладки этим часто пользуюсь.
Всем спасибо, будем думать)
Добавлено через 57 минут
<?php
$p = count($_POST) > 0 ? $_POST : $_GET;
?>
Таки не совсем понял, эту строчку... Вимимо знание синтаксиса еще хромает...(в учебниках такой конструкции пока не видел(( )
так на вскидку - эм.. если длинна массива - _post больше нуля, то кидаем в переменную р эээ массив либо гет либо пост. правильно? Не очень понял как это поможет отладке скрипта =) как и куда вывести сообщения об ошибках и всякие маячки?=\
видимо все-таки денвер))
Добавлено через 1 час 14 минут
ini_set('log_errors', 'On');
ini_set('error_log', '/logs/php_errors.log');
нашел вот такое, якобы при вставке в начало скрипта обяжет его записывать логи в указанный фаил, но папка logs по прежнему пуста.
что значит либо запрос от флешки тупо не пришел, и, соответсвенно, скрипт вообще не запускался(врятли, но как проверить?) либо что я чего-то опять не так понял))
с функциями fopen и тп я так понимаю прицип - самостоятельно записывать отладочные сообщения - делать аналог trace() =) правильно?
отправка запроса из флешки :
var stat_loader:URLLoader = new URLLoader();
var stat_request:URLRequest=new URLRequest("http://stat.php");
//
try
{
stat_request.method=URLRequestMethod.POST;
// добавление параметров в запрос
var stat_vars:URLVariables = new URLVariables();
stat_vars['auth_key']= wrapper.application.parameters.auth_key;
stat_vars['viewer_id']= wrapper.application.parameters.viewer_id;
stat_vars['my_score']= score;
stat_request.data=stat_vars;
// выполнение запроса
stat_loader.load(stat_request);
this.log_tx.appendText("запрос прошел успешно");
}
catch (er:Error)
{
this.log_tx.appendText(er.message);
}
caseyryan
28.02.2013, 19:53
Таки не совсем понял, эту строчку... Вимимо знание синтаксиса еще хромает...(в учебниках такой конструкции пока не видел(( )
Это называется тернарный или троичный условный оператор
сначала после равно пишется условие, и если оно выполняется, то после знака вопроса ставится блок, который должен быть использован, если не выполняется, то после двоеточия другой блок.
Как бы $p = (если длина массива post больше 0) ? (тогда) $p = $_POST : (иначе) $p = $_GET;
так на вскидку - эм.. если длинна массива - _post больше нуля, то кидаем в переменную р эээ массив либо гет либо пост. правильно? Не очень понял как это поможет отладке скрипта =) как и куда вывести сообщения об ошибках и всякие маячки?=\
В общем-то правильно.
Суть в том, что можно вместо флешки отправить запрос из адресной строки браузера, и вывести столько echo в окно браузера, сколько потребуется. В то время как флешка выбросит ошибку, исли ответ ожидается в виде url переменных
нашел вот такое, якобы при вставке в начало скрипта обяжет его записывать логи в указанный фаил, но папка logs по прежнему пуста.
как "обяжет"? в логи вам надобно самому писать что у вас происходит.
ааа... это лог-файл ошибок самого пыха, а не ваш лог. вы их путаете.
пути /log/ под Win нет. Укажите туда нормальный путь к папке и перезапустите денвер. И тогда рассказы об ошибках будут в этом файле. Но не лог скрипта.
"http://stat.php"
что за странный адрес?
Это называется тернарный или троичный условный оператор
спасибо, еще знаний мне в копилку)
Cуть в том, что можно вместо флешки отправить запрос из адресной строки браузера, и вывести столько echo в окно браузера, сколько потребуется. В то время как флешка выбросит ошибку, исли ответ ожидается в виде url переменных
просто в любом браузре ввести в адресную строку get запрос? тогда это то что нужно. большое спасибо.
--------------------------------
про логи - я и хотел увидеть там системные логи а не свои. это все на удаленном сервере я имел ввиду, извиняюсь если не понятно выразил мысль. ) вообщем их там нет. и это странно. насколько я понимаю это означает что скрипт не запускался ниразу. ?
адресс эээм, не знаю зачем, но я его убрал просто. оставил условность)
так откройте его в браузере и посмотрите работает ли.
отсутствие лога может быть и по причине незапуска скрипта, и по причине отсутствия ошибок, и вообще на сервере такое лучше писать в файле настройки, а не в скрипте.
Добавлено через 5 минут
зы. ещё и по причине неправильных прав доступа к папке logs тоже может быть)
caseyryan
28.02.2013, 22:33
просто в любом браузре ввести в адресную строку get запрос?
да, именно так
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.