Просмотр полной версии : Не отправляються переменные пхп скрипту
Что делаю нетак ? флеш и пхп на одном домене, помогите плз, срочно.
sendMessage = function(){
var my_lv:LoadVars = new LoadVars();
newUr='/UserFiles/Image/noviy-god-2011/send.php';
setting='?MAIL='+friend.MAIL+'&MESSAGE='+friend.MESSAGE+'&FIO='+friend.FIO+'&myFIO='+friend.myFIO+'&myMAIL='+friend.myMAIL;
my_lv.load(newUr+setting, "GET");
trace('сообщение отправленно: '+friend.MESSAGE);
}
Вот строка получаемая сервером:
/UserFiles/Image/noviy-god-2011/send.php?MAIL=%3CTEXTFORMAT%20LEADING=%222%22%3E%3CP%20ALIGN=%22LEFT%22%3E%3CFONT%20FACE=%22Arial%22%20SIZE=%2214%22%20COLOR=%22
причём тут теги оформления ? о.О
трейс
сообщение отправленно: Мой текст
Нужно отправить переменные:
friend.MAIL
friend.MESSAGE
friend.FIO
friend.myFIO
friend.myMAIL
Что нетак ?
HEELP !
Может есть какойто другой способ отправить эти злащастные переменные ? Кто нить с опытом отправки из флеши вникните плз в мою тему.
Как ты получаешь friend.MAIL и пр. ?
Только не надо отвечать "из текстовых полей".
Детально, пожалуйста.
Правильный метод такой, если что, например:
var mail:String = friend.MAIL.text ; //если MAIL - это имя текстового поля в мувике friend
var setting:String = '?MAIL='+ mail ....
Подозреваю, что ты используешь переменные, связанные с полем, а не свойство text и имя экземпляра текстового поля.
Это нельзя делать.
И не пиши "срочно, плз", от этого только хуже.
Ок, хорошо.
Да текстовое поле (инпут) находиться в клипе friend. У поля есть имя, и указана отображающаяся переменная.
В этомже кадре есть код
MAIL='Эл. ящик';
http://imagepost.ru/images/420/bag.jpg
Если есть желание поковыряться, могу скинуть исходник.
"указана отображающаяся переменная" - забудьте об этом раз и на всегда.
Так делать нельзя, и так давно никто не делает из-за разных косяков, и не только (морально устаревший принцип, наследие такое).
Делайте как я написал:
var mail:String = friend.t4.text ;
....
var setting:String = '?MAIL='+ mail ....
и т.д.
А если вам надо, чтобы в поле отобразилось состояние какой-то переменной, нужно это делать явно:
var t4_defaultText:String = 'Эл. ящик';
friend.t4.text = t4_defaultText;
Ты про "Auto kern" ?
А я думал что это за галка такая ... тыкнул из любопытсва в начале и забыл.
Щас попробую... кстати почему тебя в ясли зачислили ? Делал прелоадер по твоему методу - супер !
Да при чем тут "Auto kern", я про "связанную переменную"! Забудь.
Очисти вообще поле Var.
Насчет "Яслей" - это как-то с "репутацией" связано, видимо, у всех стартовое значение :)
Ок, щас сделаю, отпишу о результате.
пс что за галка "Aute kern" ?
Автоматический кернинг - т.е. использовать встроенные в шифт межбуквенные расстояния.
Вообще-то связь есть (http://www.flasher.ru/forum/showpost.php?p=813180&postcount=5) с твоей проблемой, лучше сними галочку. Но сделай как я сказал, так правильно.
Добавлено через 16 минут
Еще вот что. Передавай переменные лучше с помощью POST.
Не дело сообщения через адресную строку гонять.
Посмотри в хелпе пример на метод LoadVars.sendAndLoad .
Т.е.
var slv:LoadVars = new LoadVars(); //экземпляр для отправки
var rlv:LoadVars = new LoadVars();//экземпляр для получения ответа
rlv.onLoad = rlvOnLoad;
var newUr:String ='/UserFiles/Image/noviy-god-2011/send.php';
function sendMessage ()
{
slv.MAIL = friend.t4.text ;
slv.MESSAGE = ... //текст из других полей
slv.FIO = ...
slv.myFIO = ...
slv.myMAIL = ...
slv.sendAndLoad(newUr, 'POST');
}
function rlvOnLoad (suc:Boolean)
{
if (suc)
{
rezult.text = 'Сообщение отправлено';
}
else
{
rezult.text = 'Не удалось отправить сообщение: сервис недоступен';
}
}
Ну и на серверном скрипте нужно что-то типа вместо
$MAIL = $_GET['MAIL'];
использовать $MAIL = $_POST['MAIL'];
Ну и скрипт должен выдавать какую-то любую строку, чтобы rlv было что принять и подтвердить отправку.
Например, если функция mail в php сработала удачно, то можно вернуть одну строку, если нет, то другую, и разобрать ответ в rlv.onLoad .
Балин, запрос до сервера вообще не доходит. Может нужно:
slv.sendAndLoad(newUr, rlvOnLoad, 'POST');
В sendAndLoad 2 параметр - имя принимающей функций. а POST - третий
или это не принцепиально ?
Целиком:
//экземпляр для отправки
var rlv:LoadVars = new LoadVars();
var slv:LoadVars = new LoadVars();
//экземпляр для получения ответа
function sendMessage() {
var newUr:String = '/UserFiles/Image/noviy-god-2011/send.php';
var mail:String = _root.friend.t4.text;
var mymail:String = _root.friend.t1.text;
var fio:String = _root.friend.t3.text;
var myfio:String = _root.friend.t2.text;
var mymessage:String = _root.friend.t5.text;
slv.MAIL = friend.t4.text;
slv.MESSAGE = mymessage;
//текст из других полей;
slv.FIO = fio;
slv.myFIO = myfio;
slv.myMAIL = mymail;
slv.sendAndLoad(newUr, rlvOnLoad, 'POST');
//Отпровляемые переменные:
trace(slv.myFIO);
trace(slv.MESSAGE);
rlv.onLoad = rlvOnLoad;
}
function rlvOnLoad(suc:Boolean) {
if (suc) {
friend.gotoAndPlay('tru');
} else {
friend.gotoAndPlay('fals');
}
}
Добавлено через 27 минут
О боже, какой кайф. Свершилось, я отправил пхп скрипту данные... и они дошли, куда надо. Хотя вроде нечего особова не менял, только
function sendMessage()
...
поменял на
sendMessage = function
и ещё чтото там ...
mooncar очередное спасиба, тебе давно памятник пора поставить. Вырасту - тоже буду помогать смертным.
В sendAndLoad 2 параметр - имя принимающей функций. а POST - третий
или это не принцепиально ?
Не функции, а имя принимающего экземпляра LoadVars. У меня же написано в комментарии.
Пожалуйста.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.