Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   обмен данными между флэшем и Php. (http://www.flasher.ru/forum/showthread.php?t=65550)

Bright 21.06.2005 07:39

воть пример примитивнейшей гостевой книги

это файл gbadd.html
здесь форма для добавления сообщения:

<html>
<head>
<title>Добавить сообщение</title>
</head>
<body>
<form action="gbwrite.php" method="post">
<b>Ник (максимум 20 символов):</b>
<input name="nick" type="text" size="20" value="" maxlength="20"><br>
<b>E-mail (максимум 30 символов):</b>
<input name="mail" type="text" size="20" value="" maxlength="30"><br>
<b>Ваш текст (максимум 300 символов):</b><br>
<textarea name="text" rows="10" cols="40" maxlength="300"></textarea><br>
<input type="submit" value="Отправить">
</form>
</body>
</html>

при нажатии на кнопку он открывает gbwrite.php
этот файл пишет юзерово сообщении в файл data.txt

<html>
<head>
<title>Запись нового сообщения.</title>
</head>
<body>
<?php
//проверка файла:
$data = "\n Ник: $nick \n E-mail: $mail \n Сообщение: $text \n";
$filename = "data.txt";
if (is_file($filename)){
print "Файл $filename есть и с ним всё в порядке!";
}
else{
print "Файла $filename нет или с ним что-то не то...";
}
//получаем размер файла:
//здесь трабла: размер возвращается тот, что до записи.
$fsize = filesize($filename);
print "<br>Размер файла (в байтах) $fsize";
if (empty($nick)) {
print "<br> Неправильный или пустой ник! Вернитесь на предыдущюю страницу и введите свой ник!";
}
else {
//открытие...
$fo = fopen($filename, "a+");
//пишем переменную $data:
fwrite($fo, $data);
//закрываем файл:
fclose($fo);
}
?>
</body>
</html>

и последний файл это gbview.php
смотрелка сообщений

<html>
<head>
<title>Просмотр сообщений.</title>
</head>
<body>
<?php
$data = "12345";
$filename = "data.txt";
if (is_file($filename)){
print "Файл $filename есть и с ним всё в порядке!";
}
else{
print "Файла $filename нет или с ним что-то не то...";
}
$fsize = filesize($filename);
print "<br>Размер файла (в байтах) $fsize";
$fo = fopen($filename, "a+");
$fr = fread($fo, $fsize);
//нейтрализуем html теги:
$fr = htmlspecialchars($fr);
print nl2br("\n Текст файла: \n $fr");
//print "<br>Текст файла: <br> $fr";
fclose($fo);
?>
</body>
</html>

вот и всё.
всякую ненужную байду типа коментариев и сообщений "файл существует и его размер в байтах:" можешь смело снести...
правда какое отношении это имеет к флэшу? :rolleyes: здесь всё на пхп...

50%LameRa 21.06.2005 15:56

Цитата:

Сообщение от Constantine
<?php echo "Привет, ".$_POST["name"]; ?>
будет работать...

Ну в его случае вообще-то <?php echo "Привет, ".$_GET["name"]; ?>

Constantine 21.06.2005 16:08

Цитата:

Сообщение от 50%LameRa
Ну в его случае вообще-то <?php echo "Привет, ".$_GET["name"]; ?>

Точно подмечено ;)

TERRORist 21.06.2005 19:22

спасибо-спасибо. и извените что вас донимаю. просто уже все позабыл из рнр.

Leaf.fla 24.06.2005 12:37

передача данных
 
в общем у меня примерно такая же проблемма. работате почти но не полностью.
влеш форма не получает данные из ПХП скрипта.
в клипе - кнопка "post" и поле ввода текст с переменной "input". на кнопке скрипт -
on (release, keyPress "<Enter>") {
getURL ("http://localhost/index.php", "_root", "POST");
}

ну а в главном фрейме есть окно для вывода текста с переменной "output". "_root" указали место куда загрузиться результат(переменные от скрипта ПХП). при выполнении открыавется новое окно в браузере и браузер выводит результат работы полученный от флеш. а там где я на самом деле жду данные от ПХП, их нет.
ПХП скрипт -
<?
echo "$input";
?>


PS а мне нада что бы, я мог отправить ПХП переменные, и что бы ПХП значение этих же переменных мне вернул во Флеш обратно, а не в браузере.

Constantine 24.06.2005 12:58

Ещё раз для тех, кто в танке:
Если в php.ini есть такая запись register_globals = Off данные из форм не помещаются в соответствующие глобальные переменные, другими словами, в этом случае твоя переменная $input не определена, а вот так
Код:

<?php
$input=$_POST['input'];
echo $input;
?>

вполне возможно, какое-то значение получишь, если нет других ошибок...
ЗЫ, а ковычки зачем в echo?

Leaf.fla 24.06.2005 13:30

Constantine у меня register_globals = On
я же говорю что в Браузере значения этих переменнойвыводяться а Флеш их не принимает от Скрипта.

Constantine 24.06.2005 13:49

Хорошо, а ты их передаешь в флэш, и как?

Leaf.fla 24.06.2005 13:55

on (release, keyPress "<Enter>") {
getURL ("http://localhost/index.php", "_root", "POST");
}
по идее в книге написано что "_root", это главный фрейм в переменные которого будут отправлятся результат. я пробывал и точно из книги брать пример с использованием loadVariables() вместо getURL, хотя они похожи... но тем не менее, даже с loadVariables() не фига не получается. флеш форма не получеат резульат от пхп, вместо этого отрывается окно браузера и там выводиться этот результат.

Constantine 24.06.2005 14:09

Да не из флэша, а во флэш , типа того...
Код:

<param name="movie" value="index.swf?index=<?=$index?>" />
тада во флэше у тебя появится переменная _root.index
А ты что делаешь?


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

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