Publicidade

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Hernani F.

Problemas de quebra de linha no envio de email (Flash +PHP)

Olá,

gostaria de saber se alguém já passou por isso, eu criei um inputText no flash e setei ele como multiline, e mando o valor dele por sendAndLoad para o php,no php eu recebo por POST, gravo em uma variável e envio com a função mail porém se eu dou um enter no flash o que está para baixo do enter não é enviado.

 

Se eu digito no campo de inputText do Flash assim:

 

Olá, (aqui dou um enter)

meu nome é Hernani Fernandes (aqui dou um outro enter)

Obrigado.

 

Ele envia pro php e o php envia pro email assim

 

Olá,

 

.................

Ou seja o que está abaixo do enter ele não envia.

 

 

O código:

 

// ----Método que envia os dados para o php
var lv:LoadVars = new LoadVars();
var lvR:LoadVars = new LoadVars();

function enviaEmail()
{
	this.lv.texto = this.txt.text;
	this.lv.sendAndLoad("email.php",this.lvR,"POST");
	
	this.lvR.onLoad = function (ok:Boolean)
	{
		if (ok = true)
		{
			_root.txt.text = "Email Enviado";
		}else
		{
			_root.txt.text = "Falha ao enviar";
		}
	}

}
// ----botão que envia
this.btEnvia.onPress = function ()
{
	this._parent.enviaEmail()
}

 

No PHP ficou assim:

 


<?php 
	//recebe a variavel do flash
	$nome = $_POST['texto'];


	//cabeçalhos para correção de acentuação
	$headers = "MIME-Version: 1.0\n"; 
	$headers .= "Content-Type: text/html; charset=utf-8\n";
	$headers .="From: $email\n";

	//preenche em um campo que vai organizar e colocar de forma visualizável
	$corpo = "Texto: $texto";
	
	
	//envia
	if(mail('meuemail@meuemail.com',"Email enviado pelo site",$corpo,$headers)){
		echo "ok=true";
	}else{
		echo "ok=false";
	}
?>

Caso tenham alguma dúvida o link para baixar os arquivos é o seguinte:

http://www.mouseup.com.br/teste/email.rar

 

Se já existir este tópico em outro lugar peço que postem o link pois já fasculhei a internet e este fórum porém não encontrei nada.

 

Obrigado.

Hernani F.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Colocou wordWrap no campo de texto também???

 

Se não colocou ele vai continuar single line.

 

Abraços

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

No arquivo que você mandou você não colocou essa opção não apenas mutiline

 

Então faça assim

_root.txt.multiline = true;
_root.txt.wordWrap = true;

E você ta usando muito _root, _parent, this desnecessariamente... cuidado que isso pode vir a complicar sua vida mais para frente!!!

Se o form já está no _root não precisa colocar _root na frente, mesma coisa par ao botão não precisa colocar this.botao, só botão já funciona

 

e a function não precisa chamar this._parent.function chame só function()...

Ou seja seu código estaria mais correto se fica-se assim:


// ----Método que envia os dados para o php
var lv:LoadVars = new LoadVars();
var lvR:LoadVars = new LoadVars();

txt.multiline = txt.wordWrap = true;

function enviaEmail()
{
	lv.texto = txt.text;
	lv.sendAndLoad("email.php",lvR,"POST");
	
	lvR.onLoad = function (ok:Boolean)
	{
		if (ok = true)
		{
			txt.text = "Email Enviado";
		}else
		{
			txt.text = "Falha ao enviar";
		}
	}

}
// ----botão que envia
btEnvia.onPress = function ()
{
	enviaEmail();
}

 

Não que seu metodo de programar esteja errado, você apenas está complicando mais e "sujando" mais o código ao invés de deixar ele simples e limpo.

 

Abraços

0

Compartilhar este post


Link para o post
Compartilhar em outros sites