Модераторы: SoWa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Flash и MySQL, Помогите разобраться 
:(
    Опции темы
katrine
Дата 14.4.2007, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 14.4.2007

Репутация: нет
Всего: нет



Здравствуйте!

Необходимо написать регистрацию пользователей на Flash с использованием БД MySQL. Как сделать это только на MySQL+PHP я знаю, но вот как их вместе связать и как считывать данные из текстовых полей во Flash и передавать в MySQL и обратно?

Знаю, тут есть похожая тема, но я ничего не поняла в ней...:(((
Заранее спасибо!
PM MAIL   Вверх
AntonioBanderaz
Дата 14.4.2007, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 18



1. Получение данных из текстовых полей
Код

// Допустим txtPole - это текстовое поле во flash
// Тогда чтобы получить его текущее значение надо написать 
var txtPoleValue:String = txtPole.text;


2. Как передать данные из flash в PHP
  а) С помощью класса LoadVars
Код

var submitListener:Object = new Object();
submitListener.click = function(evt:Object) {
    var result_lv:LoadVars = new LoadVars();
    result_lv.login = "login";
    result_lv.password = "password";
    result_lv.onLoad = function(success:Boolean) {
    if (success) {
        result_ta.text = result_lv.welcomeMessage;
    } else {
        result_ta.text = "Error connecting to server.";
    }
    };
    var send_lv:LoadVars = new LoadVars();
    send_lv.name = name_ti.text;
    send_lv.sendAndLoad("http://someserver.com/lvars.php", result_lv, "POST");
};
submit_button.addEventListener("click", submitListener);

  б) С помощью класса XML, и его метода sendAndLoad(). Для этого предаваться должен XML
Код

var login_str:String = "<login login=\""+login_txt.text+"\" password=\""+password_txt.text+"\" />";
var my_xml:XML = new XML(login_str);
var myLoginReply_xml:XML = new XML();
myLoginReply_xml.ignoreWhite = true;
myLoginReply_xml.onLoad = myOnLoad;
my_xml.sendAndLoad("http://someserver.com/lvars.php", myLoginReply_xml);
function myOnLoad(success:Boolean) {
    if (success) {
        if ((myLoginReply_xml.firstChild.nodeName == "packet") &&
            (myLoginReply_xml.firstChild.attributes.success == "true")) {
            gotoAndStop("loggedIn");
        } else {
            gotoAndStop("loginFailed");
        }
    } else {
        gotoAndStop("connectionFailed");
    }
}

  в) C помощью phpObject можно вызывать методы классов php на сервере http://ghostwire.com/go/17
  г) С помощью AMFPHP, Сашка писал про это, http://forum.vingrad.ru/topic-140551.html
  д) C помощью веб Сервисов, SOAP RPC.
Код

import mx.data.components.WebServiceConnector;

var startTime:Number;
var wscListener:Object = new Object();
wscListener.result = function(evt:Object) {
var resultTimeMS:Number = getTimer()-startTime;
      trace("result loaded in "+resultTimeMS+" ms.");
      trace(evt.target.results);
};
wscListener.send = function(evt:Object) {
      startTime = getTimer();
};
var wsConn:WebServiceConnector = new WebServiceConnector();
wsConn.addEventListener("result", wscListener);
wsConn.addEventListener("send", wscListener);
wsConn.WSDLURL = "http://someserver.com/service.php?wsdl";
wsConn.operation = "doLogin";
wsConn.params = ["login", "password"];
wsConn.suppressInvalidCalls = true;
wsConn.multipleSimultaneousAllowed = false;
wsConn.trigger();



--------------------
ГЫ... 
PM MAIL ICQ   Вверх
katrine
Дата 14.4.2007, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 14.4.2007

Репутация: нет
Всего: нет



Спасибо, но, честно говоря, я не очень понимаю весь этот код....
Можно на примере? Вот, например, 2 текстовых поля - login и password. Мне нужно записать эти данные в базу, а потом как-то считать их из неё.
Извиняюсь за глупость...
PM MAIL   Вверх
AntonioBanderaz
Дата 14.4.2007, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 18



Цитата(katrine @  14.4.2007,  17:06 Найти цитируемый пост)
Извиняюсь за глупость... 

Это не глупость, это просто незнание... За это не надо извиняться.
Цитата(katrine @  14.4.2007,  17:06 Найти цитируемый пост)
Можно на примере?

Можно
Цитата(katrine @  14.4.2007,  17:06 Найти цитируемый пост)
Вот, например, 2 текстовых поля - login и password. Мне нужно записать эти данные в базу, а потом как-то считать их из неё.

Как я понял все хотят directly access к БД, не будет, ну по крайней мере во 2-м AS. Всё делается через php(ColdFusion, Java, ASP, Ruby ...).
Тоесть flash по сути это представление, серверный скрипт просто получает данные, как при сабмите формы. 
Просто добавь это в первый кадр мувика.
Код

function prepareTextField(tf:TextField, isPassword:Boolean) {
    tf.border = true;
    tf.type = "input";
    tf.maxChars = 32;
    tf.password = isPassword;
    tf.multiline = false;
    tf.wordWrap = false;
    var tfFormat:TextFormat = new TextFormat();
    tfFormat.color = 0xFF0000;
    tf.setTextFormat(tfFormat);
}

function prepareLabelField(tf:TextField, align:String) {
    tf.selectable = false;
    var tfFormat:TextFormat = new TextFormat();
    tfFormat.align = align;
    tf.setTextFormat(tfFormat);
}
var lLogin:TextField = createTextField("lLogin", this.getNextHighestDepth(), 20, 20, 50, 20);
lLogin.text = "Login: ";
prepareLabelField(lLogin, "right");

var txtLogin:TextField = createTextField("txtLogin", this.getNextHighestDepth(), 70, 20, 100, 20);

var lPassword:TextField = createTextField("lPassword", this.getNextHighestDepth(), 20, 50, 50, 20);
lPassword.text = "Pass: ";
prepareLabelField(lPassword, "right");

var txtPassword:TextField = createTextField("txtPassword", this.getNextHighestDepth(), 70, 50, 100, 20);

prepareTextField(txtLogin, false);
prepareTextField(txtPassword, true);

var sbtBtn:MovieClip = createEmptyMovieClip("sbtBtn", this.getNextHighestDepth());
sbtBtn._x = 110;
sbtBtn._y = 80;
sbtBtn.beginFill(0xFFCC00);
sbtBtn.lineStyle(1, 0x000000, 100);
sbtBtn.moveTo(0, 0);
sbtBtn.lineTo(60, 0);
sbtBtn.lineTo(60, 20);
sbtBtn.lineTo(0, 20);
sbtBtn.lineTo(0, 0);
sbtBtn.endFill();

var lField:TextField = sbtBtn.createTextField("txtLabel", sbtBtn.getNextHighestDepth(), 5, 1, 50, 20);
lField.text = "Send";
prepareLabelField(lField, "center");

sbtBtn.onRelease = function() {
    if (txtLogin.text != "") {
        var result_lv:LoadVars = new LoadVars();
        result_lv.onLoad = function(success:Boolean) {
            if (success) {
                if(result_lv.isLogined == "true") {
                    trace("Login sucscessful");
                } else {
                    trace("Login failed");
                }
            } else {
                trace("Comunication failed");
            }
        };
        var send_lv:LoadVars = new LoadVars();
        send_lv.login = txtLogin.text;
        send_lv.pas = txtPassword.text;
        send_lv.sendAndLoad("http://localhost/test.php", result_lv, "POST");
    }
};


В php скрипте ты можешь использовать переменные:
 $_POST['login'] - логин чела
 $_POST['pas'] - пасс чела
И результат возвращаешь в виде
 isLogined=true 
   или 
 isLogined=false

Разницу я думаю не надо объяснять... ) Успехов )

ЗЫ: Запарился блин я.... Давно так не отвечал... 


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
katrine
Дата 14.4.2007, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 14.4.2007

Репутация: нет
Всего: нет



Спасибо ещё раз!
То есть, если я правильно поняла, этот скрипт, в принципе, стандартный, которой мне менять не нужно. Текстовые поля во Flash будут называться pas и login и переменные php  $_POST['login'],  $_POST['pas']  можно напрямую использовать для записи их в базу?
Надеюсь, это будет последний мой вопрос, сама себе удивляюсь....

PM MAIL   Вверх
AntonioBanderaz
Дата 15.4.2007, 00:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 18



Цитата(katrine @  14.4.2007,  21:12 Найти цитируемый пост)
о есть, если я правильно поняла, этот скрипт, в принципе, стандартный, которой мне менять не нужно. 

Ну это уже тебе решать нужно его менять или нет. И он не стандартныя, я сам написал минут за 20. 
текстовые поля будут называться так как ты их назовёшь. 
Цитата(AntonioBanderaz @  14.4.2007,  20:00 Найти цитируемый пост)
createTextField("txtLogin", this.getNextHighestDepth(), 70, 20, 100, 20);

создаётся текстовое поле с имененм txtLogin
Цитата(katrine @  14.4.2007,  21:12 Найти цитируемый пост)
переменные php  $_POST['login'],  $_POST['pas']  можно напрямую использовать для записи их в базу?

Да можно.


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
katrine
Дата 15.4.2007, 09:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 14.4.2007

Репутация: нет
Всего: нет



И еще раз спасибо.
Ваша помощь просто неоценима!
PM MAIL   Вверх
katrine
Дата 15.4.2007, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 14.4.2007

Репутация: нет
Всего: нет



Сделала все, как вы сказали. Но данные не отправляются и обработка скрипта не начинается вообще.((((
PM MAIL   Вверх
AntonioBanderaz
Дата 15.4.2007, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 18



Какой путь к скрипту?


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
katrine
Дата 16.4.2007, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 14.4.2007

Репутация: нет
Всего: нет



Всё работает - это у меня были проблемы с сервером.
Вот только ещё один вопрос возник: у меня есть хтмл файл, в котором находится flash-ролик. Когда я нажимаю на кнопку Send, всё нормально считывается и записывается в БД. Но мне нужно выводить сообщения о том, что пользователь, например, при регистрации ввёл некорректные данные, как это сделать? Print не работает, передача в какие-то поля формы тоже, видимо, php скрипт просто не видит эту хтмл страницу. Можно как-то вывести сообщение во flash-ролик?

PM MAIL   Вверх
AntonioBanderaz
Дата 16.4.2007, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 18



PHP сорс в студию... 
ЗЫ: с тебя пиво ))) 


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
katrine
Дата 16.4.2007, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 14.4.2007

Репутация: нет
Всего: нет



есть примерно это:
<?
$conn=mysql_connect("localhost","","");
mysql_select_db("mybase",$conn);
$name=$_POST['login'];
$pass=$_POST['pas'];
$pass1=$_POST['pas1'];

$sql="INSERT INTO reg VALUES ('$name','$pass','$pass1')";
$result=mysql_query($sql,$conn);

?>
Нужно: чтобы при проверке, например, на совпадение 2-х паролей, как-то сообщалось, что они не совпадают...
PM MAIL   Вверх
belka
Дата 17.4.2007, 07:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 17.9.2006

Репутация: 2
Всего: 3



Цитата(katrine @  16.4.2007,  21:53 Найти цитируемый пост)
$conn=mysql_connect("localhost","","");

выглядит подозрительно) оно ваще работает?)
может хотябы так:
Код

$conn=mysql_connect("localhost","root","");

 smile 

Это сообщение отредактировал(а) belka - 17.4.2007, 07:55
--------------------
Просто я живу на улице Ленина и меня зарубает время от времени...aka technogen007
PM MAIL   Вверх
katrine
Дата 17.4.2007, 08:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 14.4.2007

Репутация: нет
Всего: нет



Чем подозрительно??? Всё нормально работает. Абсолютно без проблем.

Это сообщение отредактировал(а) katrine - 17.4.2007, 08:16
PM MAIL   Вверх
AntonioBanderaz
Дата 17.4.2007, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 18



Код

$conn=mysql_connect("localhost","","");
mysql_select_db("mybase",$conn);
$name=$_POST['login'];
$pass=$_POST['pas'];
$pass1=$_POST['pas1'];

$sql="INSERT INTO reg VALUES ('$name','$pass','$pass1')";
$result=mysql_query($sql,$conn);

Что-то я проверки не вижу....

На самом деле все переменные обратно во flash можешь передать вот так
Код

....
echo "var1=val1&var2=test%20with%20space";



--------------------
ГЫ... 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Flash"
AlDev
SoWa
  • Если вы хотите предложить кому-либо работу, то пишите или в личку, или оставляйте сообщения в специально предназначеном для этого форуме "Объявления о найме специалистов"
  • Один вопрос - одна тема. Не надо переходов от одного вопроса к другому.
  • Если вы хотите показать какой-нибудь ваш мульт, причём показать, а не предоставить исходник, то вам сюда
  • Вопросы по разработке интернет-приложений на Flex и вопросы по MXML пишите в раздел Flex
  • Смотрим в будущее. ActionScript 3 обсуждается в форуме ActionScript 3
  • Новости из мира Flash.
  • New! [code=ascript][/code] - подсветка ActionScript + wikipedia help

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, AlDev, SoWa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | ActionScript 1,2 | Следующая тема »


 




[ Время генерации скрипта: 0.0566 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.