IAMDIX 10 Denunciar post Postado Dezembro 5, 2011 Fala galera, faz um tempo que estou preparando esse formulario e ta dando um erro aqui, seja no servidor wamp instalado no meu pc seja no servidor dedicado pago. No flash não tenhos erro mas rodando o formulario recebo "Erro no envio, tente de novo!" por isso acredito ser um erro no arquivo php; tentei mudar o codigo de varias formas mas não manjo quase nada de PHP. PHP <?php $enviaPara = 'contato@meuemail.com.br'; $campoNome = $_POST['nome']; $campoCidade = $_POST['cidade']; $campoEstado = $_POST['estado']: $campoTel = $_POST['tel']; $campoEmail = $_POST['email']; $campoCheckin = $_POST['checkin']; $campoCheckout = $_POST['checkout']; $campoAdultos = $_POST['adultos']; $campoCriancas = $_POST['criancas']; $campoComentarios = $_POST['comentarios']; $escolha = $_POST['escolha']; $subject = 'E-mail do site'; //Montando o corpo da mensagem $mensagem = "Nome: ".$_POST['nome']." \n"; $mensagem = "Cidade: ".$_POST['cidade']." \n"; $mensagem = "Estado: ".$_POST['estado']." \n"; $mensagem = "Tel: ".$_POST['tel']." \n"; $mensagem = "Email: ".$_POST['email']." \n"; $mensagem = "Checkin: ".$_POST['checkin']." \n"; $mensagem = "Checkout: ".$_POST['checkout']." \n"; $mensagem = "Adultos: ".$_POST['adultos']." \n"; $mensagem .= "Criancas: ".$_POST['criancas']." \n"; $mensagem .= "Comentarios: ".$_POST['comentarios']." \n"; $mensagem = "escolha: ".$_POST['escolha']; //e-mail do remetente: $mail_headers = 'From: '.$_POST['email']; //envia o e-mail mail($enviaPara, $subject, $mensagem, $mail_headers); // Vamos fazer um teste para ver se o email foi enviado corretamente if( mail( $para, $assunto, $corpo, $headers ) ) { // Caso o email tenha sido enviado pelo provedor, retorna YES //echo "&success=yes"; //$success=0'; $success='yes'; echo "&success=".$success; } else { // Caso não tenha sido enviado, retorna NO //echo "&success=no"; //$success=1'; $success='no'; echo "&success=".$success; } } ?> AS3 stop(); //variaveis nome_txt.text = ""; cidade_txt.text = ""; estado_txt.text = ""; tel_txt.text = ""; email_txt.text = ""; checkin_txt.text = ""; checkout_txt.text = ""; adultos_txt.text = ""; criancas_txt.text = ""; comentarios_txt.text = ""; msg_txt.text = ""; var escolha:String = new String(); var url_vars:URLVariables = new URLVariables(); var timer:Timer; var url_loader:URLLoader = new URLLoader ; var url_request:URLRequest = new URLRequest("testemail.php"); //arquivo send_mail.php tem que estar na mesma pasta // caso seja em outro lugar colocar o endereço do link onde está url_request.method = URLRequestMethod.POST; //registro eventos limpar_btn.addEventListener(MouseEvent.CLICK, _limpar); enviar_btn.addEventListener(MouseEvent.CLICK, _enviar); //funçoes do sistema; function init():void { //habilitamos acentuação System.useCodePage = false; } //outras funçoes function _enviar(e:MouseEvent):void { /* Verifica se o CheckBox apto 1 foi selecionada */ if (apto1_ch.selected == true) { /* A opção foi selecionada */ /* Armazena na variável escolha o valor Apto1 */ escolha = "Apto1, "; } /* Verifica se o CheckBox Apto 2 foi selecionada */ if (apto2_ch.selected == true) { /* A opção foi selecionada */ /* Armazena na variável escolha o valor Apto2 */ escolha += "Apto2, "; } /* Verifica se o CheckBox apto 3 foi selecionada */ if (apto3_ch.selected == true) { /* A opção foi selecionada */ /* Armazena na variável escolha o valor Apto3 */ escolha += "Apto3, "; } /* Verifica se o CheckBox apto 4 foi selecionada */ if (apto4_ch.selected == true) { /* A opção foi selecionada */ /* Armazena na variável escolha o valor Apto4 */ escolha += "Apto4, "; } /* Verifica se o CheckBox apto 5 foi selecionada */ if (apto5_ch.selected == true) { /* A opção foi selecionada */ /* Armazena na variável escolha o valor Apto5 */ escolha += "Apto5. "; } if (nome_txt.text == "" || cidade_txt.text == "" || estado_txt.text == "" || tel_txt.text == "" || email_txt.text == "" || checkin_txt.text == "" || checkout_txt.text == "" || adultos_txt.text == "" || criancas_txt.text == "" || comentarios_txt.text =="" || escolha == "") { msg_txt.text = "Prencha todos os campos!"; } else { /*var mail_data:String = "Nome=" + nome_txt.text + "&Cidade=" + cidade_txt.text + "&Estado=" + estado_txt.text + "&Tel=" + tel_txt.text + "&Email=" + email_txt.text + "&Checkin=" + checkin_txt.text + "&Checkout=" + checkout_txt.text + "&Adultos=" + adultos_txt.text + "&Criancas=" + criancas_txt.text + "&Comentarios=" + comentarios_txt.text;*/ url_vars.nome = nome_txt.text + "&"; url_vars.cidade = cidade_txt.text + "&"; url_vars.estado = estado_txt.text + "&"; url_vars.tel = tel_txt.text + "&"; url_vars.email = email_txt.text + "&"; url_vars.checkin = checkin_txt.text + "&"; url_vars.checkout = checkout_txt.text + "&"; url_vars.adultos = adultos_txt.text + "&"; url_vars.criancas = criancas_txt.text + "&"; url_vars.comentarios = comentarios_txt.text + "&"; url_vars.escolha = escolha + "&"; msg_txt.text = "Enviando o formulario ....."; //var url_vars:URLVariables = URLVariables(mail_data); url_request.data = url_vars; //url_vars.dataFormat = URLLoaderDataFormat.TEXT; url_loader.dataFormat = URLLoaderDataFormat.VARIABLES; url_loader.load(url_request); url_loader.addEventListener(Event.COMPLETE, _verifica); } } function _verifica(e:Event):void { var loader:URLLoader = URLLoader(e.target); var email_status = new URLVariables(loader.data).success; //variavel que está no php if (email_status == "yes") { msg_txt.text = "Enviado com Sucesso!"; timer = new Timer(500); timer.addEventListener(TimerEvent.TIMER, _timer); timer.start(); } else { //para verificar se o timer funciona timer = new Timer(500); timer.addEventListener(TimerEvent.TIMER, _timer); timer.start(); msg_txt.text = "Erro no envio, tente de novo!"; } } function _timer(e:TimerEvent):void { if (timer.currentCount >= 10) { nome_txt.text = cidade_txt.text = estado_txt.text = tel_txt.text = email_txt.text = checkin_txt.text = checkout_txt.text = adultos_txt.text = criancas_txt.text = comentarios_txt.text = escolha = ""; apto1_ch.selected = false; apto2_ch.selected = false; apto3_ch.selected = false; apto4_ch.selected = false; apto5_ch.selected = false; timer.removeEventListener(TimerEvent.TIMER, _timer); } } /* Função disparada quando se clica no botão limpar */ function _limpar(event:MouseEvent):void { limpa();/* Chamamos a função limpa */ } function limpa() { escolha = ""; nome_txt.text = ""; cidade_txt.text = ""; estado_txt.text = ""; tel_txt.text = ""; email_txt.text = ""; checkin_txt.text = ""; checkout_txt.text = ""; adultos_txt.text = ""; criancas_txt.text = ""; comentarios_txt.text = ""; escolha = ""; apto1_ch.selected = false; apto2_ch.selected = false; apto3_ch.selected = false; apto4_ch.selected = false; apto5_ch.selected = false; } Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Tavares 167 Denunciar post Postado Dezembro 5, 2011 muitos... muitos erros no script php. tente assim: <?php error_reporting(E_ALL); $dados = array( 'nome', 'cidade', 'estado', 'tel', 'email', 'checkin', 'checkout', 'adultos', 'criancas', 'comentarios', 'escolha', ); $mensagem = 'Seguem dados da mensagem:<br /><br />'; foreach( $dados as $campo ): if ( !array_key_exists( $campo , $_POST ) ) continue; $mensagem .= sprintf( '%s: %s<br />' , ucfirst( $_POST[ $campo ] ) , strip_tags( $_POST[ $campo ] ) ); endforeach; //e-mail do remetente: $mail_headers = 'MIME-Version: 1.0' . "\r\n"; $mail_headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $mail_headers .= 'From: Teste sistema<contato@' . $_SERVER[ 'SERVER_NAME' ] . '>' . "\r\n"; $subject = 'E-mail do site'; $enviaPara = 'contato@meuemail.com.br';//você deve alterar isso para um email existente // Vamos fazer um teste para ver se o email foi enviado corretamente if( mail( $enviaPara, $subject, $mensagem, $mail_headers ) ) { // Caso o email tenha sido enviado pelo provedor, retorna YES //echo "&success=yes"; //$success=0'; $success='yes'; echo "&success=".$success; } else { // Caso não tenha sido enviado, retorna NO //echo "&success=no"; //$success=1'; $success='no'; echo "&success=".$success; } Compartilhar este post Link para o post Compartilhar em outros sites
IAMDIX 10 Denunciar post Postado Dezembro 5, 2011 Obrigado pela ajuda MAtheus, mas ta dando o mesmo erro Não sei se essa info serve mas o meu mail onde deveria receber os contatos do formulario é Outlook Express com envio smpt Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Tavares 167 Denunciar post Postado Dezembro 5, 2011 Você testou no servidor dedicado remoto? Tenta executar esse arquivo php diretamente no navegador e veja o resultado. Compartilhar este post Link para o post Compartilhar em outros sites
IAMDIX 10 Denunciar post Postado Dezembro 5, 2011 Ok Matheus testei no navegador e ta ok testei no wamp aqui na maquina e ta dando "Erro no envio, tente de novo!" testei agora no servidor pago e funcionou aqui o resultado que esá vindo repetido, mas mesmo assim voce é um Grande :natalsmile: pois teu codigo ta funcionando e os outros que achei na net não deram nada até agora Muitissimo obrigado pelo tempo em verificar meus dados ...agora vou tentar melhorar e estudar o codigo pois estã parado em "enviando o formulario..." sem dar o enviado com sucesso. Seguem dados da mensagem: Teste&: teste& Teste&: teste& Teste&: teste& Teste&: teste& Teste&: teste& Teste&: teste& Teste&: teste& Teste&: teste& Teste&: teste& Teste&: teste& Apto5. &: Apto5. & valeu mesmo! Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Tavares 167 Denunciar post Postado Dezembro 5, 2011 Não entendi bem quais os problemas que restam, mas se no servidor dedicado está 100%, é muito provável que o erro esteja na configuração referente à envio de e-mails, na sua máquina local (php.ini, etc.). :bye: Compartilhar este post Link para o post Compartilhar em outros sites
IAMDIX 10 Denunciar post Postado Dezembro 5, 2011 Realmente vou ter que verificar o php.ini do wamp ... os erros que eu tava falando são: quando o usuario envia o contato tem uma area de informações referente ao envio. No php seria a parte final // Vamos fazer um teste para ver se o email foi enviado corretamente if( mail( $enviaPara, $subject, $mensagem, $mail_headers ) ) { // Caso o email tenha sido enviado pelo provedor, retorna YES //echo "&success=yes"; //$success=0'; $success='yes'; echo "&success=".$success; } else { // Caso não tenha sido enviado, retorna NO //echo "&success=no"; //$success=1'; $success='no'; echo "&success=".$success; } no AS3 na parte: function _enviar msg_txt.text = "Enviando o formulario ....."; // é o que está ficando atualmente na pagina do formulario quando envia. na verdade para funcionar 100% deveria marcar conforme a função: function _verifica msg_txt.text = "Enviado com Sucesso!"; Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Tavares 167 Denunciar post Postado Dezembro 5, 2011 A grande pergunta é: isso somente rodando local, ou em ambos os servidores? Pelo que entendi, o problema é puro Action Script / Servidor local, e, portanto, não posso mais te ajudar... :natalsad: Compartilhar este post Link para o post Compartilhar em outros sites
IAMDIX 10 Denunciar post Postado Dezembro 5, 2011 A grande pergunta é: isso somente rodando local, ou em ambos os servidores? Pelo que entendi, o problema é puro Action Script / Servidor local, e, portanto, não posso mais te ajudar... :natalsad: Local não manda pois devo ter configurado mal o wamp e da "Erro no envio, tente de novo!" no servido externo eu recebo mas o usuario fica com a pagina dando "Enviando o formulario ....." dae eu estava me perguntando se a parte final do arquivo php estava correta. if( mail( $enviaPara, $subject, $mensagem, $mail_headers ) ) { // Caso o email tenha sido enviado pelo provedor, retorna YES $success='yes'; echo "&success=".$success; } else { // Caso não tenha sido enviado, retorna NO $success='no'; echo "&success=".$success; } Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Tavares 167 Denunciar post Postado Dezembro 5, 2011 Acredito que esteja OK sim, mas para você saber, execute o arquivo php diretamente no servidor. Se aparecer '&success=yes' na tela, é pq tá 100%. Compartilhar este post Link para o post Compartilhar em outros sites
IAMDIX 10 Denunciar post Postado Dezembro 5, 2011 Não entendi como executar o .php no servidor mas executando o contato.html ou swf continua enviando a mensagem e ficando com a escrita "Enviandoi o formulario..." tentei mudar o codigo assim mas não mudou nada Vou verificar o codigo de novo e pensar o que ta faltando if( mail( $enviaPara, $subject, $mensagem, $mail_headers ) ) { // Caso o email tenha sido enviado pelo provedor, retorna YES echo "&success=yes"; } else { // Caso não tenha sido enviado, retorna NO echo "&success=no"; } Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Tavares 167 Denunciar post Postado Dezembro 5, 2011 Não entendi como executar o .php no servidor O ActionScript chama o arquivo testemail.php, que é o funcionamento do envio de e-mail que te ajudei a construir, certo? Basta executar ele diretamente no navegador. Exemplo: http://site.com.br/testemail.php Teoricamente, ele deve retornar '&success=yes'. Compartilhar este post Link para o post Compartilhar em outros sites
IAMDIX 10 Denunciar post Postado Dezembro 5, 2011 hehehe as vezes me perco em um copo de agua :natalbiggrin: é e mesmo como voce falou ...ta dando isso mesmo &success=yes deve ser algo no AS3 então Mais uma coisa.....letra Ç por exemplo retorna ç&: ç& e porque o retorno é sempre em dobro? Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Tavares 167 Denunciar post Postado Dezembro 5, 2011 é e mesmo como voce falou ...ta dando isso mesmo &success=yes Levando isso em conta, se o e-mail estiver chegando também, o PHP está 100%, e o tópico resolvido. O resto é config de server ou seu action script. :bye: edit: letra Ç por exemplo retorna ç&: ç& isso é problema de codificação. Tenta alterar isso: "charset=iso-8859-1" por isso: "charset=UTF-8". Você precisa equilibrar a codificação de toda a estrutura para que não hajam problemas com acentos. Se o problema persistir, faça uma pesquisa no fórum sobre isso. Garanto que há muito conteúdo sobre. e porque o retorno é sempre em dobro? já isso eu não entendi... Compartilhar este post Link para o post Compartilhar em outros sites
IAMDIX 10 Denunciar post Postado Dezembro 5, 2011 isso é problema de codificação. Tenta alterar isso: "charset=iso-8859-1" por isso: "charset=UTF-8". Você precisa equilibrar a codificação de toda a estrutura para que não hajam problemas com acentos. Se o problema persistir, faça uma pesquisa no fórum sobre isso. Garanto que há muito conteúdo sobre. Resolvido com charset=UTF-8 :natalohmy: :natalsmile: REtorno em dobro na minha caixa de email tipo assim e sempre com & depois ç&: ç& ç&: ç& ç&: ç& ç&: ç& ç&: ç& ç&: ç& ç&: ç& ç&: ç& ç&: ç& ç&: ç& Apto5. Apto5. &: Apto5. Apto5. & Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Tavares 167 Denunciar post Postado Dezembro 5, 2011 Ah, entendi... Troque: $mensagem .= sprintf( '%s: %s<br />' , ucfirst( $_POST[ $campo ] ) , strip_tags( $_POST[ $campo ] ) ); Por: $mensagem .= sprintf( '%s: %s<br />' , ucfirst( $campo ) , strip_tags( $_POST[ $campo ] ) ); []'s Compartilhar este post Link para o post Compartilhar em outros sites
IAMDIX 10 Denunciar post Postado Dezembro 5, 2011 fico impressionado com a rapidez em resolver cada coisa MAtheus :natalsmile: Agora ficou assim so com o caracter & a mais Nome: test& Cidade: test& Estado: tesr& Tel: test& Email: test& Checkin: test& Checkout: test& Adultos: test& Criancas: test& Comentarios: test& Escolha: Apto4, & Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Tavares 167 Denunciar post Postado Dezembro 5, 2011 Humm... isso aí eu acho que é gerado pelo seu formulário Action Script. Você pode fazer isso: $mensagem .= sprintf( '%s: %s<br />' , ucfirst( $campo ) , strip_tags( rtrim( $_POST[ $campo ] , '&' ) ) ); Agora tá 100%. []'s Compartilhar este post Link para o post Compartilhar em outros sites
IAMDIX 10 Denunciar post Postado Dezembro 5, 2011 Como diria uma minha amiga francesa ... "genial" :natalbiggrin: Quando eu arrumo a parte final no AS3 atualizo o topico para ficar no historico. Mais uma vez quero agradecer a disponibilidade do Matheus pois são pessoas como ele que fazem crescer o forum Compartilhar este post Link para o post Compartilhar em outros sites
IAMDIX 10 Denunciar post Postado Dezembro 5, 2011 Acabei de resolver com mais uma pesquizada no google :natalsmile: Aqui o novo codigo onde so foram retiradas 2 & no final conforme podem ver. Funcionando 100% agora. Valeu mais uma vez Matheus !! <?php error_reporting(E_ALL); $dados = array( 'nome', 'cidade', 'estado', 'tel', 'email', 'checkin', 'checkout', 'adultos', 'criancas', 'comentarios', 'escolha', ); $mensagem = 'Seguem dados da mensagem:<br /><br />'; foreach( $dados as $campo ): if ( !array_key_exists( $campo , $_POST ) ) continue; $mensagem .= sprintf( '%s: %s<br />' , ucfirst( $campo ) , strip_tags( rtrim( $_POST[ $campo ] , '&' ) ) ); // $mensagem .= sprintf( '%s: %s<br />' , ucfirst( $campo ) , strip_tags( $_POST[ $campo ] ) ); endforeach; //e-mail do remetente: $mail_headers = 'MIME-Version: 1.0' . "\r\n"; $mail_headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n"; $mail_headers .= 'From: Contato do formulario do site<contato@' . $_SERVER[ 'SERVER_NAME' ] . '>' . "\r\n"; $subject = 'E-mail do site'; $enviaPara = 'contato@meuemail.com.br';//você deve alterar isso para um email existente // Vamos fazer um teste para ver se o email foi enviado corretamente if( mail( $enviaPara, $subject, $mensagem, $mail_headers ) ) { // Caso o email tenha sido enviado pelo provedor, retorna YES echo "success=yes"; //$success=0'; // $success='yes'; //echo "&success=".$success; } else { // Caso não tenha sido enviado, retorna NO echo "success=no"; //$success=1'; //$success='no'; //echo "&success=".$success; } ?> Compartilhar este post Link para o post Compartilhar em outros sites