[Resolvido] Laço FOR
Senhores boa noite.
Como não sou nada intimo do nosso PHP, entao vir pedir ajuda de vocês.
MEu problema é o seguinte. Estou fazendo aquele famoso PHP + Flash, e tive que alterar algumas coisas do meu AS, por conta do arquivo PHP, pois bem. Este arquivo ele é provido pelo provedor, onde hospedo o site. Em uma certa parte do código, ele diz assim: # Loop para enviar os campos por e-mail. Ate ai tudo bem... mas eu gostaria de deixar que o formulário buscasse todos os campos dinamicos que o arquivo flash tem e buscasse alguns específicos... que são: NOME, EMAIL, ASSUNTO e MENSAGEM.
Segue o código:
<?php
Verifica o método pelo qual a página foi chamada
if(strtolower($_SERVER['REQUEST_METHOD']) == "post"){
# Faz o include do PEAR Mail e do Mime.
include ("Mail.php");
include ("Mail/mime.php");
#E-mail de destino. Caso seja mais de um destino, crie um array de e-mails.
$recipients = 'EmailDeDestino@dominio.x-br.com';
# Cabeçalho do e-mail.
$headers = array
(
'From' => "MeuEmail@meudominio.x-br.com", # O 'From' é *OBRIGATÓRIO*.
'Reply-To' => $_POST['email'], # Responder e-mail para um determinado destinatário
'To' => $recipients,
'Subject' => 'TITULO DO E-MAIL' # Título do e-mail
);
# Define o tipo de final de linha.
$crlf = "\r\n";
# Inicio do corpo da Mensagem e texto e em HTML.
$html = "<HTML><BODY><font color=blue>";
# Loop para enviar os campos por e-mail.
foreach($_POST as $campo => $valor)
{
if (stristr($valor,"Content-Type")) {
header("HTTP/1.0 403 Forbidden");
exit;
}
if($campo != 'redirect')
{
$html .= "<br>---------------------------<br>";
$html .= ucfirst($campo) . " = $valor";
}
}
# Fim do corpo da Mensagem e do texto em HTML.
$html .= "<br>---------------------------";
$html .= "</font></BODY></HTML>";
# Instancia a classe Mail_mime.
$mime = new Mail_mime($crlf);
# Coloca o HTML no email
$mime->setHTMLBody($html);
# Procesa todas as informações.
$body = $mime->get();
$headers = $mime->headers($headers);
# Parâmetros para o SMTP. *OBRIGATÓRIO*
$params = array
(
'auth' => true, # Define que o SMTP requer autenticação.
'host' => 'smtp.meudominio.x-br.com', # Servidor SMTP
'username' => 'email=meudominio.x-br.com', # Usuário do SMTP
'password' => 'SENHA DO EMAIL' # Senha do seu MailBox.
);
# Define o método de envio
$mail_object =& Mail::factory('smtp', $params);
# Envia o email. Se não ocorrer erro, retorna TRUE caso contrário, retorna um
# objeto PEAR_Error. Para ler a mensagem de erro, use o método 'getMessage()'.
$result = $mail_object->send($recipients, $headers, $body);
if (PEAR::IsError($result))
{
# Caso apresente erro no envio do e-mail exibe a mensagem abaixo
echo "ERRO ao tentar enviar o email. (" . $result->getMessage(). ")";
}
else
{
# Caso o envio seja realizado com sucesso, o usuário será redirecionado para o valor da variável $redirect
$redirect = $_POST['redirect'];
header("Location: $redirect");
exit;
}
}else
{
echo "Não foi passado nenhum campo!";
exit;
} ?>
Pois bem, na linha 27, que é esta aqui: foreach($_POST as $campo => $valor), alterei para: $valor = "nome: $nome\n\nEmail: $email\n\nAssunto: $assunto\n\nMensagem: $mensagem;, mas nã0 funcionou... entao eu pergunto para voces! O que posso alterar no código acima para que ele pegue somente 4 campos específicos em vez de pegar todos os campos dinamicamente...
Obrigado.
Discussão (7)
Carregando comentários...