Страница: 1 |
Страница: 1 |
Вопрос: ActionScript 3.0: Сохранить текст в файл на сервак
Добавлено: 02.06.08 23:35
Автор вопроса: Morpheus | Web-сайт:
собсно сабж... никто не знает? пишу гостевуху и вот наткнулся на систему безопасности флеша, которая не даёт легко писать текст в файл.
После обширного гугелнья, нашёл вот эти коды:
Этот пишем в ПХП файл:
$filename = "external.txt";
//insert votes to txt file
$insertpost = $_REQUEST['content'];
$fp = fopen($filename,"w"); // "w" means write-only
fputs($fp, $insertpost);
fclose($fp);
а это пишем во флеш:
function myRequestPostSender():void
{
var myRequest:URLRequest = new URLRequest("external.php");
myRequest.data = "This is the data I want to send";
myRequest.method = URLRequestMethod.POST;
navigateToURL(myRequest);
}
myRequestPostSender();
ну так вот: когошко с пхп открывается, код вроде выполняется, но ничё не пишется. Причём, если заменить $insertpost = $_REQUEST['content']; на $insertpost = моя_блин_строка_заданная_тут_же, то вот эта строка в файл пишется. видимо проблема с передачей инфы между флешом и ПХПшником. оба файла лежат в одной папке на серваке поддеживающий пхп.. хз какой версии правда.
Никто не подскажет в чём глюк?
Заранее благодарен!
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #1
Добавлено: 03.06.08 11:10
Во-первых, отдели мух от котлет. Флэш это клиентская технология и писать сама по себе она может только в специальное локальное хранилище на компе юзера. Во-вторых, для того, чтобы из флэша что-то записать на сервере, нужно вызвать серверный скрипт, да. В-третьих, ОТКЛЮЧИ register_globals, большего зла во всем мире IT не существует. В-четвертых, для получения POST-параметров в PHP используется суперглобальный массив $_POST. В-пятых, проще использовать file_put_contents, чем открыть/записать/закрыть.
Номер ответа: 2
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #2
Добавлено: 03.06.08 15:43
1) Ну, я согласен что писать флеш не може, благо что сервак поддерживает пхп. С этим проблем нет - я имел дело с пхп.
2) Это и делаем.
3) register_globals - это что? я даже не иогу найти в коде это.
4)$_POST - это самая первая штука которуя попробывал вместо $_REQUEST. Но какую перменную она должна читать? "content" ? По моему не работало.
5) file_put_contents? ээээ... ну, может как остальное заработает - займусь оптимизацией. мне бы лучше функцию которая в начало файла может текст добавить без перезаписи остального (ну, да - я могу открыть, считать, прибавить строку вначали и записать обратно - если нет быстрого пути, сделаю именно так).
А всё таки, в чём проблемав передачи данных? в $_REQUEST['content']; ?
Номер ответа: 3
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #3
Добавлено: 04.06.08 03:48
В php.ini или ini_set("register_globals", 0);
сделай var_dump($_REQUEST) и посмотри что вообще приходит, под каким именем...
Данные разными методами передаваться могут, гет, пост, хеад.. а ты конкретно в AS указал
Поэтому и в PHP принимай через $_POST.
Номер ответа: 4
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #4
Добавлено: 05.06.08 20:09
var_dump - зашибись... спасибо Хакер! баг был в том что надо читать не "content", a ""?contents"" lol...
щас попробую сделать чтоб это всё работало... POST тоже вреоде пашет
Номер ответа: 5
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #5
Добавлено: 06.06.08 02:17
на тебе "крутую" функцию
* cool print_r
* @params (mixed) -> vars to print
*/
function pa()
{
$backtrace = debug_backtrace();
$args = func_get_args();
$matches = array();
preg_match('|.*[\/\\\].+)$|', $backtrace[0]['file'], $matches);
$res = array($matches[1].': '.$backtrace[0]['line'], $args);
echo "<pre>";
print_r($res);
echo "</pre>";
}
берешь теперь