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:
<!--CODE_actionscript--><div class="sqltop">AS</div><div class="sqlmain"><div class="actionscript" style="font-family: monospace;">
// metodo responsavel por enviar a mensagemfunction 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 camposfunction releaseFields
() { nome.
text =
'';
email.
text =
'';
mensagem.
text =
'';
saida.
text =
'';
}</div></div><div style="display:none"><!--SOURCE-->
// 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 = '';
}
<!--/SOURCE--></div><!--/CODE_actionscript-->
No botão de enviar, insira isto:
<!--CODE_actionscript--><div class="sqltop">AS</div><div class="sqlmain"><div class="actionscript" style="font-family: monospace;">
on (press
) { sendMessage
();
}</div></div><div style="display:none"><!--SOURCE-->
on (press) {
sendMessage();
}
<!--/SOURCE--></div><!--/CODE_actionscript-->
... no de limpar:
<!--CODE_actionscript--><div class="sqltop">AS</div><div class="sqlmain"><div class="actionscript" style="font-family: monospace;">
on (press
) { releaseFields
();
}</div></div><div style="display:none"><!--SOURCE-->
on (press) {
releaseFields();
}
<!--/SOURCE--></div><!--/CODE_actionscript-->
Vamos agora ao arquivo PHP. Crie um novo arquivo e salve-o como
formulario.php. Dentro dele insira:
<!--CODE_php--><div class="sqltop">PHP</div><div class="sqlmain"><div class="php" style="font-family: monospace;">
<?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: $nomen';
$conteudo .=
'Email: $emailnn';
$conteudo .=
'=============== Mensagem ===============nn';
$conteudo .=
'$mensagemn';
$header =
'From: $email';
# enviando a mensagem através do metodo mail()mail($para,
$assunto,
$conteudo,
$header);
?></div></div><div style="display:none"><!--SOURCE-->
<?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);
?>
<!--/SOURCE--></div><!--/CODE_php-->
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.
TO PRECISANDO MUITO DE AJUDA COM O ENVIO DE FORMULARIO EM FLASH + PHP.
olá, meu nome é herculano souza, Belém PA, sei criar sites em html
php, asp, fazendo conexão com banco de dados, mas inventei
de fazer um site mas dinamico e interativo, com visual mais arrojado, e só
com flash se faz isso com stilo, e todos os tutoriais em flash postados nos forums só falão assim...
ciriem um 4 camdas, depois adicionem
frames, eu sei lá onde se cria ou adiciona essas coisas, ou onde devo clicar o o que digitar para fazer isso
na interface do flash me deixa baratinado,meu negocio é notepad, não consigo seguir esses
tutoriais, porque os programadores dizem o que fazer e não como fazer, o mais facil que
são osscripts ele colam bunitinho, e o pior, nem sei onde devo jogar os escripts, se é em um botão, se é num arquivo.php, ou se eu num arquivo.html, fico todo louko quando tenho que mexer no flash, alguem por favor pode fazer pra mim

(peguei um template pronto, e editei tudo, hospedei no endereço que passei, inclusive DEVE QUE NÃO VAI DAR MUITO TRABALHO PRA VC, PORQUE DEVE ESTÁ QUASE TUDO PRONTO NA BIBIOTECA ORGINAL,INCLUSIVE O BOTÃO RESET PARA DELETAR O VALORES DO FORMULARIO CASO O FISITANTE DO SITE QUEIRA LIMPAR TUDO QUE DIGITOU EM TODOS OS CAMPOS DO FORMULARIO, ESTÁ COM O SCRIPT PRONTO, QUANDO CLICO EM ACTION DO BOTÃO, VISUALISO O SCRIPT DELE, LOGO ACHO QUE O RESTO TODO TAMBÉM DEVE ESTÁ PRONTO.)(estou mandando a biblioteca.fla em anexo) e mais uma coisa, tenho que "pedir permissão"
para trabalhar com envio de formulario no servidor da hostmach que é onde hospedo meu site, e essa permição me é dada simplesmente usando esse script no formulario:
você precisa autenticar o envio, sem isso os servidores smtp rejeitam e descartam o e-mail. Eis um exemplo simples de como criar um formulário de envio de e-mail autenticado.
1º - Crie o arquivo smtp.class.php copiando e colando código abaixo.
<?php
/*
* Classe SendMail e todas as suas funções são de poder da Hosting Machine
*/
class SendMail
{
var $Servidor; //Endereço do servidor SMTP
var $Porta=25; //Porta do servidor SMTP
var $Autenticado; //Autenticado ou não
var $Usuario; //Usuario do servidor SMTP
var $Senha; //Senha do servidor SMTP
var $EmailDe; //Email de quem está enviando
var $EmailPara; //Email de quem vai receber
var $Assunto; //Assunto do email
var $Corpo; //Mensagem do email
//Aumente para mais anexos
var $Anexos=array(" ", " ", " ", " ", " ", " "," ", " ", " "," ");
var $NumAnexos=0;
var $Barra="\\"; //Variavel que guarda o tipo da barra, \\ - windows | / - Linux
var $erros=FALSE; //Variavel que trata a situação da classe
//Construtor
function SendMail()
{
//Aumenta o tempo de espera maximo
set_time_limit(3600);
}
//Criptografa o arquivo na base64
function CodarArquivo($arq)
{
$fp=fopen($arq, "rb");
if(!$fp)
{
$this->erros=TRUE;
return FALSE;
}
$File=fread($fp, filesize($arq));
fclose($fp);
return base64_encode($File);
}
//Retorna o nome do arquivo
function PegarNome($str)
{
$Nome="";
$i=strlen($str)-1;
while($str[$i]!="\\")
$i--;
$i++;
$j=0;
for($i; $i<strlen($str); $i++)
{
$Nome.=$str[$i];
$j++;
}
return $Nome;
}
//Retorna a extensão do arquivo, desde que ele tenha extesão
function PegarTipo($str)
{
$tipo="";
$i=strlen($str)-1;
$j=0;
while($str[$i]!=".")
$i--;
$i++;
$j=0;
for($i; $i<strlen($str); $i++)
{
$tipo.=$str[$i];
$j++;
}
return $tipo;
}
//Coloca o endereço do arquivo no array e aumenta o numero de anexos
function Anexar($arq)
{
$this->Anexos[$this->NumAnexos]=$arq;
$this->NumAnexos++;
return TRUE;
}
//Função que verifica se as variaveis estão OK
function Verificar()
{
//Verifica se é um servidor autenticado
if( $this->Autenticado )
if( !isset($this->Usuario) || !isset($this->Senha) ) //Se for autenticado, verifica o usuario e a senha
$this->erros=TRUE;
//Verifica se o servidor foi digitado
if( !isset($this->Servidor) )
$this->erros=TRUE;
//Verifica se os parametros são validos
if( !isset($this->EmailDe) || !isset($this->EmailPara) || !isset($this->Assunto) || !isset($this->Corpo) )
$this->erros=TRUE;
}
//Função que espera o servidor responder
function Esperar_Resp($socket, $response, $line = __LINE__)
{
while (substr($server_response, 3, 1) != ' ')
if (!($server_response = fgets($socket, 256)))
$this->erros=TRUE;
if (!(substr($server_response, 0, 3) == $response))
$this->erros=TRUE;
}
function Enviar()
{
$this->Verificar();
if( !$this->erros )
{
//Tenta conectar
if( !$socket=fsockopen($this->Servidor, $this->Porta, $errno, $errstr, 20) )
$this->erros=TRUE;
//Espera por resposta
$this->Esperar_Resp($socket, "220", __LINE__);
//Verifica se o email esta sendo autenticado
//Caso for ele ira mandar um EHLO, pra dizer que vai ser autenticado
//Caso não for ele manda um HELO simples.
if( $this->Autenticado )
{
fputs($socket, "EHLO " . $this->Servidor . "\r\n");
$this->Esperar_Resp($socket, "250", __LINE__);
fputs($socket, "AUTH LOGIN\r\n");
$this->Esperar_Resp($socket, "334", __LINE__);
fputs($socket, base64_encode($this->Usuario) . "\r\n");
$this->Esperar_Resp($socket, "334", __LINE__);
fputs($socket, base64_encode($this->Senha) . "\r\n");
$this->Esperar_Resp($socket, "235", __LINE__);
}
else
{
fputs($socket, "HELO " . $this->Servidor . "\r\n");
$this->Esperar_Resp($socket, "250", __LINE__);
}
//Envia quem está mandando o email
fputs($socket, "MAIL FROM: " . $this->EmailDe . "\r\n");
$this->Esperar_Resp($socket, "250", __LINE__);
//Diz ao servidor quem vai receber o email
fputs($socket, "RCPT TO: " . $this->EmailPara . "\r\n");
$this->Esperar_Resp($socket, "250", __LINE__);
//Diz ao servidor que estou pronto para enviar a mensagem
fputs($socket, "DATA\r\n");
$this->Esperar_Resp($socket, "354", __LINE__);
//Cabeçalho do email
fputs($socket, "From: " . $this->EmailDe . "\r\n");
fputs($socket, "To: " . $this->EmailPara . "\r\n");
//Mando o assunto do email
fputs($socket, "Subject: " . $this->Assunto . "\r\n");
//Envia o cabeçalho
fputs($socket, "MIME-Version: 1.0\r\n");
fputs($socket, "Content-Type: multipart/mixed;\r\n");
fputs($socket, " boundary=KkK170891tpbkKk__FV_KKKkkkjjwq\r\n");
fputs($socket, "\r\n");
fputs($socket, "\r\n");
fputs($socket, "--KkK170891tpbkKk__FV_KKKkkkjjwq\r\n");
fputs($socket, "Content-Type: text/plain; charset=US-ASCII\r\n");
fputs($socket, "\r\n");
fputs($socket, $this->Corpo);
fputs($socket, "\r\n\r\n");
//verifica se existe arquivo para ser enviado junto
if($this->NumAnexos>0)
{
for($i=0; $i<$this->NumAnexos; $i++)
{
//Pega o tipo para o MIME TYPE
$tipo=$this->PegarTipo($this->Anexos[$i]);
strtolower($tipo);
switch($tipo)
{
case "jpeg":
case "jpg":
$Tipo="image/jpeg";
break;
case "gif":
$Tipo="image/gif";
break;
case "doc":
$Tipo="application/msword";
break;
case "rar":
$Tipo="application/rar";
break;
case "zip":
$Tipo="application/zip";
break;
default:
$Tipo="application/octet-stream";
break;
}
//Pega o nome do arquivo
$Nome=$this->PegarNome($this->Anexos[$i]);
fputs($socket, "--KkK170891tpbkKk__FV_KKKkkkjjwq\r\n");
fputs($socket, "Content-Type: " . $Tipo . "; name=\"". $Nome . "\"\r\n");
fputs($socket, "Content-Transfer-Encoding: base64\r\n");
fputs($socket, "Content-Disposition: attachment; filename=\"" . $Nome . "\"\r\n");
fputs($socket, "\r\n");
fputs($socket, $this->CodarArquivo($this->Anexos[$i]));
fputs($socket, "\r\n");
}
fputs($socket, "--KkK170891tpbkKk__FV_KKKkkkjjwq--\r\n");
}
//Avisa o servidor que ja acabei de enviar a mensagem
fputs($socket, "\r\n.\r\n");
$this->Esperar_Resp($socket, "250", __LINE__);
//Sai do servidor e fecha o socket
fputs($socket, "QUIT\r\n");
fclose($socket);
//Retorna um TRUE pra dizer que o email foi enviado
if ($this->erros==TRUE)
return FALSE;
else
return TRUE;
}
}
}
?>
2º - Crie o arquivo formulário.php copiando e colando código abaixo.
<form method="POST" action="enviar.php">
Seu Email<BR><input type="text" name="origem" size="30">
<BR><BR>
Assunto<BR><input type="text" name="assunto" size="30">
<BR><BR>
Mensagem<BR><textarea name="mensagem" rows="5" cols="23"></textarea>
<BR><BR>
<input type="submit" value="Enviar">
</form>
3º - Crie o arquivo enviar.php copiando e colando código abaixo.
<?php
include "smtp.class.php";
$Email = new SendMail;
$Email->Servidor = "localhost";
$Email->Autenticado = TRUE;
$Email->Usuario = "usuario"; //Digite o Usuário de e-mail você@seudominio
$Email->Senha = "senha"; //Digite a Senha do email você@seudominio
$Email->EmailDe = $_POST['origem']; //Digite o e-mail do remetente
$Email->EmailPara = "seu_email@dominio.com"; //Digite o Destino
$Email->Assunto = $_POST['assunto']; // Digite o Assunto
$Email->Corpo = $_POST['mensagem']; //Digite o Corpo
/*
* Caso precise anexar arquivos no email
* utilize:
* $Email->Anexar("/caminho/do/arquivo/1");
* $Email->Anexar("/caminho/do/arquivo/2");
* ...
* Não se esqueça que é necessário fazer o
* upload do cliente para o servidor primeiro
*
*/
//Envia o email
if($Email->Enviar())
{
echo "Seu email foi enviado corretamente";
}
else
{
echo "Desculpe, seu email não pode ser enviado";
}
?>
No arquivo enviar.php você deve substituir as variáveis destacadas em vermelho
(A BIBLIOTECA ESTÁ EM ANEXO)
SERÁ DE GRANDE AJUDA SE ALGUEM PODER ME AJUDAR, MANDANDO A BIBLIOTECA DE VOLTA COM A BIBLIOTECA.FLA FUNCIONADO O ENVIO DE EMAIL PARA OS ENDEREÇOS: herculesnetworkmarketing@hotmail.com
herculesnetworkmarketing@gmail.com
hercules@alivebetterwithagel.com
Que lhe traga otimos retornos por razão dessa ajuda.
esse biblioteca pode ser enviada para os endereços:
herculesnetworkmarketing@hotmail.com; herculesnetworkmarketing@gmail.com; herculanomarketing@hotmail.com
ANTECIPADAMENTE, MUITO OBRIGADO.