Ir para conteúdo
Fórum Script Brasil
  • 0

Problema Formulário de Site


.flaME

Pergunta

Olá,

Sou novo aqui no fórum e principalmente novo em AS.

Estou com problemas na aba de contato de um site,

peguei um script na internet e ele funciona mas não muito bem(foi editado é claro), além disso a parte de newsletter não funciona.

Estou usando AS 2.0 e este é meu script:

var news:Array = ["Sim", "Não"];

news_cb.dataProvider = news;

var assunto:Array = ["Dúvidas", " Seguros e Serviços", "Elogios", "Reclamações", "Outros"];

assunto_cb.dataProvider = assunto;

var envia:LoadVars = new LoadVars();

enviar_btn.onPress = function() {

if (nome_txt.text == "") {

status_txt.text = "Preencha o campo Nome corretamente";

}if (end_txt.text == "") {

status_txt.text = "Preencha o campo Endereço corretamente";

}if (bairro_txt.text == "") {

status_txt.text = "Preencha o campo Bairro corretamente";

}if (cidade_txt.text == "") {

status_txt.text = "Preencha o campo Cidade corretamente";

}if (tel_txt.text == "") {

status_txt.text = "Preencha o campo Telefone corretamente";

} else if (email_txt.text == "") {

status_txt.text = "Preencha o campo E-mail corretamente";

} else if ((email_txt.text.indexOf("@") == -1 || email_txt.text.indexOf(".") == -1)) {

status_txt.text = "Preencha o campo E-mail corretamente";

} else if (mensagem_txt.text == "") {

status_txt.text = "Preencha o campo Mensagem corretamente";

} else {

envia.nome = nome_txt.text;

envia.email = email_txt.text;

envia.cidade = cidade_txt.value;

envia.assunto = assunto_cb.value;

envia.mensagem = mensagem_txt.text;

envia.news = news_cb.value;

envia.end = end_txt.text;

envia.tel = tel_txt.text;

envia.bairro = bairro_txt.text;

loadVariablesNum("news.php",0,"POST");(aqui não sei se devo colocar desta forma ou como envia.sendAndLoad("news.php", envia, "POST");

}

status_txt.text = "Enviando mensagem";

envia.sendAndLoad("contato.php", envia, "POST");

};

envia.onLoad = function(ok) {

if (ok) {

if (this.erro == 0) {

limpa();

status_txt.text = "Mensagem enviada com sucesso";

} else {

status_txt.text = "Erro ao enviar E-mail";

}

}

};

limpar_btn.onPress = function() {

limpa();

};

function limpa() {

programas = "";

nome_txt.text = "";

end_txt.text = "";

bairro_txt.text = "";

cidade_txt.text = "";

email_txt.text = "";

tel_txt.text = "";

mensagem_txt.text = "";

status_txt.text = "";

assunto_cb.selectedIndex = 0;

news_cb.selectedIndex = 0;

tel_txt.restrict="0-9";

}

meus phps

contato.php:

<?php

$nome = utf8_decode(@$_POST['nome]);

$end = utf8_decode(@$_POST['end']);

$bairro = utf8_decode(@$_POST['bairro']);

$tel = utf8_decode(@$_POST['tel']);

$email = utf8_decode(@$_POST['email']);

$cidade = utf8_decode(@$_POST['cidade']);

$assunto = utf8_decode(@$_POST['assunto']);

$mensagem = utf8_decode(@$_POST['mensagem']);

$news = utf8_decode(@$_POST['news']);

$para = "meu e-mail";

if ($nome != "" && $email != "" && $cidade != "" && $assunto != "" && $mensagem != "" && $bairro != "" && $tel != "" && $end != "") {

$corpo = '<html><head><title>'.$assunto.'</title></head><body>';

$corpo .= 'Nome: '.$nome.'<br />E-mail: '.$email.'<br />Endereço: '.$end.'<br />Bairro: '.$bairro.'<br />Telefone: '.$tel.'<br />Quer receber a Newsletter: '.$news.'<br />Cidade: '.$cidade.'<br />';

$corpo .= 'Assunto: '.$assunto.'<br />Mensagem: '.$mensagem;

$headers = 'MIME-Version: 1.0' . "\r\n";

$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

$headers .= 'From:'. $email . "\r\n";

mail($para, $assunto, $corpo, $headers);

print 'erro=0';

} else {

print 'erro=1';

}

?>

e news.php:

<?

$arquivo = "newsletter.txt";

$newline = "nome_txt= ".$_POST["nome]."; tel_txt= ".$_POST["tel"]." email_txt= ".$_POST["email"]." ";

$open = fopen($arquivo,"a+");

$write = fwrite($open,$newline);

?>

Problemas:

-O E-mail chega certo porém em "Cidade:" independente da resposta ele me da o valor undefined

-Se a pessoa não preenche alguma parte do formulário ele não diz "Preencha o campo..." ele simplesmente avisa com um "Erro ao enviar E-mail"

-O newsletter não funciona, ou seja, eu posso até criar um newsletter.txt mas nada é escrito nele, sempre esta em branco.

*O flash não encontra nenhum erro.

Bom, é isso.

Quem puder ajudar fico muito agradecido pois estou à um tempão tentando arrumar,

já pesquisei sobre o assunto e tentei de formas diferentes mas nada...

Obrigado pela paciência e pela disposição.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Olá ^_^ ainda não analisei todo seu código mas pela breve olhada cidade jamais terá um valor pois o valor requisitado é:

envia.cidade = cidade_txt.value;
quando deveria ser:
envia.cidade = cidade_txt.text;
Simples até ai :) Sua cadeia de ifs me parece bem confusa, alguns lugares com else if outros apenas com if, se você quer testar o conteudo de um campo seria bom se você testasse se algo foi digitado assim:
if (nome_txt.length  < 1) {

é menos trabalhoso para o seu script e tem o mesmo efeito :) podendo até limitar um numero minimo de caracteres como por exemplo se pedir nome completo, dificilmente vai haver 1 nome com menos de 5 caracteres então podemos limitar para '<= 5'

De acordo com seu script se você preencher somente o Telefone, o E-mail e a Mensagem ele já vai enviar

E bom amigo já sobre o funcionamento do script, posso até analisar, só uma coisa, nos temos vários exemplos de scripts de formularios todos funcionando no forum... não tem muita razão de vir um novo a cada hora;

Mas se você realmente precisar usar este, lhe ajudarei a achar o erro;

Tente prestar mais atenção em seu código;

Bom o seu fopen você pode usar apensa em modo 'a' jaque você não está lendo 'a+' = read and write mas deveria sim estar gravando nem que fosse somente as partes 'nome_txt='

Se não gravou é por falta de execução do script ou por falta do 'fclose' você abriu para gravação mas n fechou o arquivo depois;

'fclose($arquivo);' no final da instrução

De uma reanalizada no seu formulario antes de mais perguntas :)

espero sua resposta

Abraços!

Pooh

Link para o comentário
Compartilhar em outros sites

  • 0

Muito obrigado Pooh,

ainda não testei mas me pareceu uma resposta bem construtiva

eu realmente procurei em varios foruns e passei dias no google atras de um bom script

porém confesso que não pesquisei neste forum pois não conhecia ele,

mais tarde dou uma boa olhada

mas obrigado pelo esclarecimento e paciência sobre minha pergunta.

de noite irei modificar o script e tentar arrumar o php (sinto que não vai funcionar mesmo)

Pode deixar que vou EDITAR este post mais tarde com os resultados

Obrigado novamente, foi difícil achar alguém que me ajudasse nos últimos dias

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...