E-mail sending .php does not redirect page

0

This script is meant to pick up ActionScript data and send it via email, however, it is not returning a success message (or error) to the user. Even the email being sent ... needs it to issue a popup alerting you of the success of the submission or redirects to a .html

<?php
/*if(!isset($_POST[Submit])) die("N&atilde;o recebi nenhum par&acitc;metro. Por favor volte ao formulario.html antes");
/* Medida preventiva para evitar que outros domínios sejam remetente da sua mensagem. */

@extract($_POST);

if (preg_match('tempsite.ws$|locaweb.com.br$|hospedagemdesites.ws$|websiteseguro.com$', $_SERVER[HTTP_HOST])) {
        $emailsender='[email protected]';
} else {
        $emailsender = "webmaster@" . $_SERVER[HTTP_HOST];
        //    Na linha acima estamos forçando que o remetente seja 'webmaster@seudominio',
        // você pode alterar para que o remetente seja, por exemplo, 'contato@seudominio'.
}

/* Verifica qual é o sistema operacional do servidor para ajustar o cabeçalho de forma correta. Não alterar */
if(PHP_OS == "Linux") $quebra_linha = "\n"; //Se for Linux
elseif(PHP_OS == "WINNT") $quebra_linha = "\r\n"; // Se for Windows
else die("Este script nao esta preparado para funcionar com o sistema operacional de seu servidor");

// Passando os dados obtidos pelo formulário para as variáveis abaixo
/*
$nomeremetente          = $_POST["nome"];
$emailremetente         = trim($_POST["email"]);
$telefoneremetente      = trim($_POST["telefone"]);
$cidaderemetente        = trim($_POST["cidade"]);
$cepremetente           = trim($_POST["cep"]);
$observacaoremetente    = trim($_POST["observacoes"]);

$comcopia               = trim($_POST["comcopia"]);
$comcopiaoculta         = trim($_POST["comcopiaoculta"]);

$referencia             = $_POST["referencia"];
$gola1                  = $_POST["gola1"];
$pato                   = $_POST["pato"];
$manga                  = $_POST["manga"];
$mangaesquerda          = $_POST["mangaesquerda"];
$manga2                 = $_POST["manga2"];
$recort1                = $_POST["recort1"];
$recort2                = $_POST["recort2"];
$recort3                = $_POST["recort3"];
$punho                  = $_POST["punho"];
$galao1                 = $_POST["galao1"];
$galao2                 = $_POST["galao2"];
$logo1                  = $_POST["logo1"];
*/


$nomeremetente          = $_POST["nome"];
$emaildestinatario      = "[email protected]";

/* Montando a mensagem a ser enviada no corpo do e-mail. */
$mensagemHTML= "<P>MENSAGEM DE E-MAIL ENVIADO POR FENYT UNIFORMES - PERSONALIZAÇÃO</P>";
$mensagemHTML.= "<P><hr></P>";
$mensagemHTML.= "Nome: $nome\n";
$mensagemHTML.= "E-Mail: $email\n";
$mensagemHTML.= "Telefone: $telefone\n";
$mensagemHTML.= "Cidade: $cidade\n";
$mensagemHTML.= "Cep: $cep\n";
$mensagemHTML.= "Observações: $observacoes\n";
$mensagemHTML.= "<P><hr></P>";
$mensagemHTML.= "<P><hr></P>";
$mensagemHTML.= "<P>PERSONALIZAÇÃO</P>";
$mensagemHTML.= "<P><hr></P>";
$mensagemHTML.= "Referencia: $referencia\n <br>";
$mensagemHTML.= "Gola: $gola1\n <br>";
$mensagemHTML.= "Corpo: $pato\n <br>";
$mensagemHTML.= "Mangas: $manga\n <br>";
$mensagemHTML.= "Manga Esquerda: $mangaesquerda\n <br>";
$mensagemHTML.= "Manga Direita: $manga2\n <br>";
$mensagemHTML.= "Recorte 1: $recort1\n <br>";
$mensagemHTML.= "Recorte 2: $recort2\n <br>";
$mensagemHTML.= "Recorte 3: $recort3\n <br>";
$mensagemHTML.= "Punho: $punho\n <br>";
$mensagemHTML.= "Galão 1: $galao1\n <br>";
$mensagemHTML.= "Galão 2: $galao2\n <br>";
$mensagemHTML.= "Logo: $logo1\n <br>";
$mensagemHTML.= "<P><hr></P>";
$mensagemHTML.= "<P>Avental</P>";
$mensagemHTML.= "Bolso: $bolso\n";


/* Montando o cabeçalho da mensagem */
$headers = "MIME-Version: 1.1".$quebra_linha;
$headers .= "Content-type: text/html; charset=iso-8859-1".$quebra_linha;
// Perceba que a linha acima contém "text/html", sem essa linha, a mensagem não chegará formatada.
$headers .= "From: ".$emailsender.$quebra_linha;
$headers .= "Return-Path: " . $emailsender . $quebra_linha;
// Esses dois "if's" abaixo são porque o Postfix obriga que se um cabeçalho for especificado, deverá haver um valor.
// Se não houver um valor, o item não deverá ser especificado.
if(strlen($comcopia) > 0) $headers .= "Cc: ".$comcopia.$quebra_linha;
if(strlen($comcopiaoculta) > 0) $headers .= "Bcc: ".$comcopiaoculta.$quebra_linha;
$headers .= "Reply-To: ".$emailremetente.$quebra_linha;
// Note que o e-mail do remetente será usado no campo Reply-To (Responder Para)

/* Enviando a mensagem */
$envio = mail($emaildestinatario, $nomeremetente, $mensagemHTML, $headers, "-r". $emailsender);

/* Mostrando na tela as informações enviadas por e-mail */
if($envio){
    include("enviosucesso.html");
}
else{
 include("envioerro.html");
}
?>
    
asked by anonymous 05.03.2018 / 14:45

1 answer

0

ActionScript does not interpret HTML , at least not with URLLoader directly (by default), so enviosucesso.html or envioerro.html will not work.

The most you can do to make ActionScript interpret HTML is to use something like link , of course the part of the form you will have to reimplement (if you are using Adobe AIR and not Adobe Flash can implement a webview, but then I think the story is different).

To resolve depends a lot on how you used ActionScript, if it was even URLLoader it will only interpret strings of the server response in a format similar to querystrings, for example:

foo=1&bar=true

Assuming you did something similar to this:

function enviarFormulario(event:MouseEvent):void
{
  var urlreq:URLRequest = new URLRequest ("http://[site]/envia.php");
  urlreq.method = URLRequestMethod.POST; 

  var urlvars:URLVariables = new URLVariables(); 
  urlvars.nome = camponome.text;
  urlvars.email = campoemail.text;
  urlvars.score = campomensagem.text;

  urlreq.data = urlvars;

  var loader:URLLoader = new URLLoader(urlreq); 
  loader.addEventListener(Event.COMPLETE, completed); 
  loader.dataFormat = URLLoaderDataFormat.VARIABLES; 
  loader.load(urlreq); 
}

function completed(event:Event):void
{
    var variables:URLVariables = new URLVariables(event.target.data);
    camporesposta.text = variables.resposta;
}

botaosubmit.addEventListener(MouseEvent.CLICK, enviarFormulario);

See that variables.resposta contains .resposta , that means that in php it will have to have something like this:

if($envio){
     echo 'resposta=sucesso';
} else{
     echo 'resposta=erro+ao+enviar';
}

Further details:

  • The camporesposta.text refers to some label that you must have or create to receive the response text of the variable

  • camponome.text , campoemail.text , and campomensagem.text are hypothetical fields that refer to your form

  • botaosubmit.addEventListener refers to the same movieClip or button you have on the form.

  • Do not use the variable in PHP so $_SERVER[HTTP_HOST] , so use $_SERVER['HTTP_HOST'] , without the quotes PHP will first look for a constant call HTTP_HOST which of course does not exist, so it will issue a warning, in the output or in the log file and only then will it convert HTTP_HOST to a string and thus start working, ie your error log will contain a series of repeated errors about this, it should be like this :

    if (preg_match('tempsite.ws$|locaweb.com.br$|hospedagemdesites.ws$|websiteseguro.com$', $_SERVER['HTTP_HOST'])) {
            $emailsender='[email protected]';
    } else {
            $emailsender = "webmaster@" . $_SERVER['HTTP_HOST'];
            //    Na linha acima estamos forçando que o remetente seja 'webmaster@seudominio',
            // você pode alterar para que o remetente seja, por exemplo, 'contato@seudominio'.
    }
    
05.03.2018 / 15:10