PDA

Просмотр полной версии : приём переменных из PHP


CREDO
13.02.2006, 23:14
Подскажите плиз

почему присходит следущее:


в php есть строка :
$may=5;
echo "amount=$may";

так почему, когда во flash'e трейсю полученную переменную, получаю amount=5, а не чисто 5

serzhman
13.02.2006, 23:29
Если я не ошибаюсь, то ты просто строку передаёшь, которая есть "amount=5".
Пиши так:
echo $may;

Король
13.02.2006, 23:36
а почему когда ты передаешь "мама" - флеш получает "мама" а не "папа"?

CREDO
14.02.2006, 11:31
Это понятно.
Король.
Если протрейсить переменную amount созданную во flash, то выводиться 5, а если поулученную из PHP, то выводит amount=5;

serzhman.
Если я просто передаю
echo $may
а во flesh трейсю переменную trace(may), почему-то выводит undefined


как же получить чистый результат?

Король
14.02.2006, 11:36
блин
ты флешем спрашиваешь у скрипта результат какой-то операции. скрипт возвращает число. откуда флешу знать, как скрипт это число получил и как он его там у себя называет? класс loadVars - это объект, который по событию onLoad/onData наполняется передаваемым ему содержимым. в твоем случае это - число. чтоб к нему обратиться - протрейсь myLoadVars (или как там они у тебя называются) .onData(obj){
trace(obj);
}
дальше исходи из этого

-MS-
14.02.2006, 14:07
попробуй
xxx.onLoad=function() {
trace (this["amount"]); //или this.amount
}

mTz
14.02.2006, 14:19
Может в начале ошибка:
echo "".amount=$may."";
тем самым даешь знать что в этих ковычках ".." у тебя идет функция а не тексти, как было у тебя

MeinTeil
14.02.2006, 17:10
На: 100% всё ПАШЕТ

//PHP
echo("amount=$may&");


//FLASHH кнопке
on (release) {
readReg = new LoadVars();
dataSend = new LoadVars();
readReg.onLoad = function(success) {
if (success) {
trace(readReg.amount);
}
};
dataSend.sendAndLoad("имя PHP скрипта", readReg, "POST");
}

А как вы ПРОВЕРЯЕТЕ PHP СКРИПТЫ на КОМПЕ? Например trace c PHP скрипта? Я чтоб проверить PHP скрипт выкладываю всё на сервак в НЭТ захожу на страницу и проверяю. Я помог помогите мне..

OFFTOP:
Для АNTARESA что ты выёживаешься, у тебя может всё и по маслу а у остальных нет, ты может всё знаешь а остальные нет, место того чтоб закрывать ТОПИК прошлый CREDO.. мог бы подсказать..

Skubent
14.02.2006, 17:58
А как вы ПРОВЕРЯЕТЕ PHP СКРИПТЫ на КОМПЕ?
OFFTOP:
Для АNTARESA что ты выёживаешься...

Прежде чем крики поднимать, почитал бы литературку кое-какую, глядишь, за умного бы сошел...

А php-скрипты проверяются просто -
http://www.php.net
http://httpd.apache.org
и будет тебе счастье.

CREDO
14.02.2006, 17:58
Я тоже выкладываю на сервак, но можно сервак и у себя на компе поставить.

MeinTeil
14.02.2006, 18:16
Прежде чем крики поднимать, почитал бы литературку кое-какую, глядишь, за умного бы сошел...

А php-скрипты проверяются просто -
http://www.php.net
http://httpd.apache.org
и будет тебе счастье.

Ты тоже с группы ANTARESA? Мало того что англоязычные ресурсы так хоть бы объяснил что откуда скачать, лучше выслушать какое то "чайневское" высказывание подтверждённое хоть чем то, чем "зачитанного" ляпнувшего только для себе подобных.. пользы больше

http://www.cashmaker.ru/p7018.html
вот кому надо по вопросу который был у меня

Skubent
14.02.2006, 18:25
А ты собираешься в IT сфере работать без минимального знания английского ? Ну-ну, удачи. Пользуйся подсказками себе подобных, глядишь, суммарный выход будет выше нулевого...

CREDO
14.02.2006, 20:14
:(


<?php
$list = array();
if ($dir = opendir('.'))
{
while (false !== ($file = readdir($dir)))
{
if ($file != "." && $file != ".." && preg_match("/.jpg/i", $file))
{
$list[] = $file;
echo("amount=$file ");
$i++;

}
}
closedir($dir);
}
?>

Этот код перебирает все jpg на сервере.

Когда я получаю их (по описанию Mein Teil)
флесш даёт результат:
002.jpg amount=001.jpg amount=003.jpg

тоесть первый результат без aount, а остальные с ним.

MeinTeil
14.02.2006, 21:49
:(


<?php
$list = array();
if ($dir = opendir('.'))
{
while (false !== ($file = readdir($dir)))
{
if ($file != "." && $file != ".." && preg_match("/.jpg/i", $file))
{
$list[] = $file;
echo("amount=$file ");
$i++;

}
}
closedir($dir);
}
?>

Этот код перебирает все jpg на сервере.

Когда я получаю их (по описанию Mein Teil)
флесш даёт результат:
002.jpg amount=001.jpg amount=003.jpg

тоесть первый результат без aount, а остальные с ним.

просто происходит ошибка переменных... всёзаписывается в одну переменную.. поэтому надо с PHP передавать строчку потом во флаше делить на МАССИВ и ты получишь по отдельности название каждого файла..

ВОТ ТАК НАДО ВСЁ ПРОВЕРИЛ ВСЁ работает на 100%
//FLASH
on (release) {
stat = "sending";
readReg = new LoadVars();
dataSend = new LoadVars();
readReg.onLoad = function(success) {
if (success) {
stat = "";
picArray = readReg.amount.split("|");
w = readReg.i;
for (i=0; i<readReg.i; i++) {
stat += picArray[i]+"\n";
}
}
};
dataSend.sendAndLoad("script.php", readReg, "POST");
}


//PHP
<?php
$list = array();
if ($dir = opendir('.')){
$i=0;
while (false !== ($file = readdir($dir))){
if ($file != "." && $file != ".." && preg_match("/.jpg/i", $file)){
$list[] = $file;
$z.=$list[$i]."|";
$i++;
}
}
echo("amount=$z&i=$i&");
closedir($dir);
}
?>

как это работает можешь посмотреть у меня
даже PHP пришлось поучить, учебник с нэта скачал круто..:)

http://musique.yard.ru/

http://meinteil.yard.ru/

-MS-
14.02.2006, 21:51
ну почитай ты хелп и посмотри примеры, помоему были( по крайней мере были пока не произошел редизайн)
пхп:

<?php
$list = array();
if ($dir = opendir('.'))
{
$i = 0;
$out = NULL;
while (false !== ($file = readdir($dir)))
{
if ($file != "." && $file != ".." && preg_match("/.jpg/i", $file))
{
if(!empty($out))
$out .= '&';
$out .= 'amount' . $i . '=' .$file;
$i++;
}
}
if(!empty($out))
$out .= '&';
$out .= "n=$i";
echo $out;
closedir($dir);
}
?>

flash

cont = new LoadVars();
cont.sendAndLoad(url, cont, "GET");
cont.onLoad = function() {
for (i = 0, i<this["n"], i++)
{
trace(this["amount" + i]);
}
}

вот так например

CREDO
14.02.2006, 22:33
Спасибо вам огромное!!!


MC ты бы не мог пояснить строки в php?

-MS-
15.02.2006, 01:05
а чего пояснять то? :)
в $out мы получаем строку вида amount1=123.jpg&amount2=345.jpg&....
а во флэш эта строка интерпритируется как
переменная1=значение1 (amount1=123.jpg)
переменная2=значение2 (amount2=345.jpg)

MeinTeil
15.02.2006, 06:50
-MS- а где ты пишешь PHP код что он так разноцветно подсвечивается? дай линк пожалуйста на эту софтину. И ещё как ты выводишь ответ через TRACE если ты проверяешь всё на СЕРВЕРЕ?

CREDO
15.02.2006, 09:19
Пиши PHP в HomeSite, там всё подсвечивается.
И с xml работать удобно.

CREDO
15.02.2006, 09:36
трейсить через браузер можно.

вот пример:

http://musique.yard.ru/script.php

MeinTeil
15.02.2006, 12:11
трейсить через браузер можно.

вот пример:

http://musique.yard.ru/script.php


Так флэшевый же трэйс через браузер не будет выдаваться..

CREDO
15.02.2006, 14:56
Флешевый трейс с компа.

-MS-
15.02.2006, 17:25
MeinTeil
если ты про подсветку на форуме, то смотри бб коды :)
есле редактор, то я пользуюсь php edit, а ваще мне очень понравился zend studio, но у мя тупит :)
и по поводу как вывожу я вопрос твой не понял :) что тебе именно не понятно?

MeinTeil
15.02.2006, 19:44
MeinTeil
если ты про подсветку на форуме, то смотри бб коды :)
есле редактор, то я пользуюсь php edit, а ваще мне очень понравился zend studio, но у мя тупит :)
и по поводу как вывожу я вопрос твой не понял :) что тебе именно не понятно?

Про вопрос забудь :)

CREDO
15.02.2006, 20:29
Из проблемы вытекает проблема.
Возникла следующая проблема:

Preview PHP - фаил для создания tumbs (preview картинок)

<?php
$list = array();
if ($dir = opendir('.'))
{
$i = 0;
$out = NULL;
while (false !== ($file = readdir($dir)))
{
if ($file != "." && $file != ".." && preg_match("/.jpg/i", $file))
{
if(!empty($out))
$out .= '&';
$out .= 'amount' . $i . '=' .$file;
$i++;
}
}
if(!empty($out))
$out .= '&';
$out .= "n=$i";
echo $out;
closedir($dir);
}
?>

// Flash

domain = "www.spektr-company.ru";
target = "";
files = new LoadVars();
files.sendAndLoad("http://"+domain+target+"/Amount.php", files, "GET");
files.onLoad = function() {
for (count=0; count<this.n; count++) {
var position = images_mc.createEmptyMovieClip("cell_"+count, images_mc.getNextHighestDepth());
images_mc["cell_"+count].attachMovie("frame_mc", "frame_mc", 1);
position._x = position._width*count;
images_mc["cell_"+count].frame_mc.loaders_mc.loadMovie("http://"+domain+target+"/Resize.php?f="+this["amount"+count]+"&type=0", 1);
}
};

Задача:
При нажатии на определённый клип, загружается соответствующая картинка только с другими параметрами разрешения:


Проблема в облости цепочки видимости переменных.


target = "";
files = new LoadVars();
files.sendAndLoad("http://"+domain+target+"/Amount.php", files, "GET");
files.onLoad = function() {
for (count=0; count<this.n; count++) {
var position = images_mc.createEmptyMovieClip("cell_"+count, images_mc.getNextHighestDepth());
images_mc["cell_"+count].attachMovie("frame_mc", "frame_mc", 1);
position._x = position._width*count;
images_mc["cell_"+count].frame_mc.loaders_mc.loadMovie("http://"+domain+target+"/Resize.php?f="+this["amount"+count]+"&type=0", 1);
images_mc["cell_"+count].count = count;
images_mc["cell_"+count].onPress = function(){
photo_mc.loadMovie("http://"+domain+target+"/Resize.php?f="+this["amount"+count]+"&type=2", 1);
}
}
};

-MS-
15.02.2006, 21:03
попробуй сдесь
images_mc["cell_"+count].onPress = function(){
photo_mc.loadMovie("http://"+domain+target+"/Resize.php?f="+this["amount"+count]+"&type=2", 1);
}
вместо this["amount"+count] files["amount"+count]
ваще не знаю :) чужой код не понимаю, флэшем занимаюсь тока когда надо, поэтому тож плохо знаю :)

CREDO
15.02.2006, 21:09
Ты прав!
Работает
Но помимо того, что ты написал, нужно добавить цикл.




domain = "www.spektr-company.ru";
target = "";
files = new LoadVars();
files.sendAndLoad("http://"+domain+target+"/Amount.php", files, "POST");
files.onLoad = function() {
for (count=0; count<this.n; count++) {
var position = images_mc.createEmptyMovieClip("cell_"+count, images_mc.getNextHighestDepth());
images_mc["cell_"+count].attachMovie("frame_mc", "frame_mc", 1);
position._x = position._width*count;
images_mc["cell_"+count].frame_mc.loaders_mc.loadMovie("http://"+domain+target+"/Resize.php?f="+this["amount"+count]+"&type=0", 1);
for (i=0; i<5; i++) {
images_mc["cell_"+i].i = i;
images_mc["cell_"+i].onPress = function() {
photo_mc.loadMovie("http://"+domain+target+"/Resize.php?f="+files["amount"+this.i]+"&type=2");
};
}
}
};

CREDO
15.02.2006, 21:16
Точно не уверен, но интуиция подсказывает мне, что код можно оптимизировать.

CREDO
15.02.2006, 21:26
Мне интересно.

Этот код не лучше. В первом случае меня смущает цикл в цикле.

domain = "www.spektr-company.ru";
target = "";
files = new LoadVars();
files.sendAndLoad("http://"+domain+target+"/Amount.php", files, "POST");
files.onLoad = function() {
for (count=0; count<this.n; count++) {
var position = images_mc.createEmptyMovieClip("cell_"+count, images_mc.getNextHighestDepth());
images_mc["cell_"+count].attachMovie("frame_mc", "frame_mc", 1);
position._x = position._width*count;
images_mc["cell_"+count].frame_mc.loaders_mc.loadMovie("http://"+domain+target+"/Resize.php?f="+this["amount"+count]+"&type=0", 1);
}
for (i=0; i<this.n; i++) {
images_mc["cell_"+i].i = i;
images_mc["cell_"+i].onPress = function() {
photo_mc.loadMovie("http://"+domain+target+"/Resize.php?f="+files["amount"+this.i]+"&type=2");
};
}
};

-MS-
15.02.2006, 22:32
может и можно оптимизировать :)
я бы count передовал в функцию images_mc["cell_"+i].onPress = function()
ps привет сочи из краснодара :) вы там тонете в грязи я слышал

CREDO
15.02.2006, 23:30
Нет.
Никакой грязи нет.

Дай свой эмайл.

admin@redflame.ru

-MS-
16.02.2006, 19:38
credo
webman2002@mail.ru

unclefucker
22.02.2006, 22:15
А можно ещё один тупой вопрос?? Тока не убивайте, если уже было:)
Вот такая вот простая хрень:
//PHP
<?
$m="сообщение";
echo "message=$m";
?>

//FLASH
readReg = new LoadVars();
dataSend = new LoadVars();
readReg.onLoad = function(success) {
if (success) {
message=readReg;
}
}
dataSend.sendAndLoad("load.php", readReg, "POST");


message - переменная динамического текста.

вот что в неё загружается в итоге - %3C%3F%0D%0A%24m=%22%EF%BF%BD%EF%BF%BD%22%3B%20%0D%0Aecho%20%22message%3D%24m%22%3B%0D%0A%3F%3E%0D%0A&onLoad=%5Btype%20Function%5D

Что это??? как от этого избавиться?

MeinTeil
22.02.2006, 22:21
А можно ещё один тупой вопрос?? Тока не убивайте, если уже было:)
Вот такая вот простая хрень:
//PHP
<?
$m="сообщение";
echo "message=$m&";
?>

//FLASH
readReg = new LoadVars();
dataSend = new LoadVars();
readReg.onLoad = function(success) {
if (success) {
message=readReg;
}
}
dataSend.sendAndLoad("load.php", readReg, "POST");


message - переменная динамического текста.

вот что в неё загружается в итоге - %3C%3F%0D%0A%24m=%22%EF%BF%BD%EF%BF%BD%22%3B%20%0D%0Aecho%20%22message%3D%24m%22%3B%0D%0A%3F%3E%0D%0A&onLoad=%5Btype%20Function%5D

Что это??? как от этого избавиться?

я красным отметил то что нужно добавить

-MS-
22.02.2006, 22:49
mes = this.message;
вот что надо добавить :)

unclefucker
22.02.2006, 23:13
Ага, спасибо!!! Большое!!! Всё получилось....