18 de mar. de 2008

Formulario Flash+PHP - MX Studio Fóruns

Olá pessoal, reparei que andam aparecendo muitas perguntas relacionadas a envio de mensagens utilizando Flash com o PHP, então, resolvi postar aqui um formulario simples e bem prático de facil entendimento.

Crie um novo documento no Flash, nesse arquivo devera estar contido 3 campos de texto do tipo INPUT e 1 do tipo DYNAMIC. Utilizei nomes de instancias referentes ao tipo de informação que o campo receberá, no caso: nome, email, mensagem, saida, respectivamente. Será também, necessário 2 botões, um referente a ação de enviar a mensagem e um outro opcional de "limpar" os campos preenchidos.

Agora criaremos o metodo responsavel por enviar os dados:

AS
// metodo responsavel por enviar a mensagem
function sendMessage() {
   // verifica se há algum campo não preenchido
   if (nome.text == '' || email.text == '' || mensagem.text == '') {
      // mostra aviso
      saida.text = 'Todos os campos devem ser preenchidos!';
   } else {
      // novo objeto da classe LoadVars()
      var env:LoadVars = new LoadVars();
      // se o arquivo foi carregado ...
      env.onLoad = function(success:Boolean) {
         // ... com sucesso
         if (success) {
            // mostra aviso
            saida.text = 'Mensagem enviada com sucesso!';
         }
         // ... senão
         else {
            // mostra aviso
            saida.text = 'A mensagem não pôde ser enviada!';
         }
         
      };
      // aloca as variaveis a serem enviadas ao PHP
      env.nome = nome.text;
      env.email = email.text;
      env.mensagem = mensagem.text;
      // envia as variaveis ao PHP e carrega o arquivo
      env.sendAndLoad('formulario.php', env, 'POST');
   }
}
// metodo responsavel por "limpar" os campos
function releaseFields() {
   nome.text = '';
   email.text = '';
   mensagem.text = '';
   saida.text = '';
}

// metodo responsavel por enviar a mensagem
function sendMessage() {
// verifica se há algum campo não preenchido
if (nome.text == '' || email.text == '' || mensagem.text == '') {
// mostra aviso
saida.text = 'Todos os campos devem ser preenchidos!';
} else {
// novo objeto da classe LoadVars()
var env:LoadVars = new LoadVars();
// se o arquivo foi carregado ...
env.onLoad = function(success:Boolean) {
// ... com sucesso
if (success) {
// mostra aviso
saida.text = 'Mensagem enviada com sucesso!';
}
// ... senão
else {
// mostra aviso
saida.text = 'A mensagem não pôde ser enviada!';
}

};
// aloca as variaveis a serem enviadas ao PHP
env.nome = nome.text;
env.email = email.text;
env.mensagem = mensagem.text;
// envia as variaveis ao PHP e carrega o arquivo
env.sendAndLoad('formulario.php', env, 'POST');
}
}
// metodo responsavel por "limpar" os campos
function releaseFields() {
nome.text = '';
email.text = '';
mensagem.text = '';
saida.text = '';
}


No botão de enviar, insira isto:

AS
on (press) {
   sendMessage();
}

on (press) {
sendMessage();
}


... no de limpar:

AS
on (press) {
   releaseFields();
}

on (press) {
releaseFields();
}


Vamos agora ao arquivo PHP. Crie um novo arquivo e salve-o como formulario.php. Dentro dele insira:

PHP
<?php

# pegando as variaveis vindas do Flash
$nome = $_POST['nome'];
$email = $_POST['email'];
$mensagem = $_POST['mensagem'];

# montando o corpo da mensagem
$para = 'seu_email';
$assunto = 'nome_assunto';
$conteudo = 'Nome: $nome\n';
$conteudo .= 'Email: $email\n\n';
$conteudo .= '=============== Mensagem ===============\n\n';
$conteudo .= '$mensagem\n';
$header = 'From: $email';

# enviando a mensagem através do metodo mail()
mail($para, $assunto, $conteudo, $header);

?>

<?php

# pegando as variaveis vindas do Flash
$nome = $_POST['nome'];
$email = $_POST['email'];
$mensagem = $_POST['mensagem'];

# montando o corpo da mensagem
$para = 'seu_email';
$assunto = 'nome_assunto';
$conteudo = 'Nome: $nome\n';
$conteudo .= 'Email: $email\n\n';
$conteudo .= '=============== Mensagem ===============\n\n';
$conteudo .= '$mensagem\n';
$header = 'From: $email';

# enviando a mensagem através do metodo mail()
mail($para, $assunto, $conteudo, $header);

?>


Pronto. Não vou detalhar o codigo PHP porque não é esse o nosso objetivo. Agora é só enviar os arquivos para algum servidor com suporte a PHP.

Abraços.
Blogged with the Flock Browser

Nenhum comentário: