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

Formmail Php


Guest - Marcelo -

Pergunta

Guest - Marcelo -

Oi pessoal estou com um problema assim eu usava um script em php pra receber formularios no meu emial..tudo fucnionava normalmente ateh que o pessoal realizou algumas mudanças no servidor e este deixou de funcionar...queria saber se alguém pode me ajudar a achar a solução.

<?php
/******************************
* FormMail v1.0
* by Calvin
* data: 2002-12-05
******************************/

/*  Domínios ou IPS de sitess que você autoriza enviar dados para este script
   Para habilitar esse recurso, retire o comentário (as duas barras do começo da linha: // )
   e edite os domínios permitidos  */

//$referencia_formulario = array ('localhost','dominio.com.br','www.dominio.com.br','200.10.145.194');

/* Não alterar se você não tem idéia do que é CSV
adiciona uma formatação estilo CSV para os dados do formulário */
$CFG = array(
'csv_style' => 0,         // Utilizar esquema CSV? 0=não e 1=sim
'csv_delimiter' => ' ' // Qual o delimitador entre os campos (TAB é a melhor opção)
);

/* Textos que aparecem no programa */
$txt_msg = array(
0 => 'O formulário não foi enviado pelas seguintes razões:<p>',
1 => 'Preencha o formulário corretamente e tente novamente.<p>',
2 => 'Você está utilizando um endereço de email banido do sistema',
3 => 'Você está enviando o formulário de uma origem <b>não autorizado</b>',
4 => '<b>Precisa de um email de destinatário válido para continuar</b>',
5 => 'Faltando',
6 => 'Seu <b>endereço de email</b> é invalido',
7 => 'Dados do Formulário',
8 => 'Obrigado por enviar o formulário',
9 => 'Formulário: Erro',
10 => 'Formulário: Enviado'
);

// controle interno
$versao = '1.0';
/* ################################################################################
############# */
function pagina_cabecalho($title){
global $txt_msg;

   $bgcolor = "#FFFFFF";
$text_color = "#000000";
$link_color = "#0000FF";
$vlink_color = "#FF0000";
$alink_color = "#000088";
$background = '';
echo "<html><head><title>$title</title></head>\n";
$background = !empty($background) ? "background='$background'" : '';
echo "<body bgcolor='$bgcolor' text='$text_color' link='$link_color' vlink='$vlink_color' alink='$alink_color' $background>\n\n";
echo "<center><img src=images/logonovo.gif width=189 height=78></center><br>\n";
}
function imprimir_erro($razao,$tipo = 0) {
global $txt_msg;

echo pagina_cabecalho($txt_msg['9']);
if ($tipo=='falta'){
    echo $txt_msg['0'];
 echo '<ul><b>' . $razao. '</b></ul>';
 echo $txt_msg['1'];
}else{ // every other error
     echo $txt_msg['0'];
} 
echo "</body></html>";
exit;
}

function verificar_referencia($referencia_formulario) {
global $txt_msg;
if(count($referencia_formulario))
{
 $encontrado = false;
 $temp = explode('/',getenv('HTTP_REFERER'));
 $referencia = $temp[2];
 for($x=0; $x<count($referencia_formulario); $x++)
 {
  if(eregi($referencia_formulario[$x], $referencia))
  {
   $encontrado = true;
  }
 }
 if(!getenv('HTTP_REFERER'))
  $encontrado = false;
 if(!$encontrado)
 {
  imprimir_erro($txt_msg['3']);
  error_log("[FormMail.php] Referência Ilegal. (".getenv("HTTP_REFERER").")", 0);
 }
 return $encontrado;
   }else{
 return true;
}
}

function capturar_campos($array) {
global $txt_msg,$CFG,$csv_header;
$campos_reservados[] = 'destinatario';
$campos_reservados[] = 'obrigatorio';
$campos_reservados[] = 'assunto';
$campos_reservados[] = 'campos_faltando_redirecionar';
$campos_reservados[] = 'redirecionar';
if (count($array))
{
 while (list($key, $val) = each($array))
 {
  $reservado_violado = 0;
  for ($i=0; $i<count($campos_reservados); $i++)
  {
   if ($key == $campos_reservados[$i])
   {
    $reservado_violado = 1;
   }
  }
  if ($reservado_violado != 1)
  {
   if (is_array($val))
   {
    for ($z=0;$z<count($val);$z++)
    {
     $csv_header .= ($CFG['csv_style']==1)? $key.$CFG['csv_delimiter'] : '';
     $conteudo .= ($CFG['csv_style']==1)? $val[$z].$CFG['csv_delimiter'] : "$key: $val[$z]\r\n";
    }
   }else{
    $csv_header .= ($CFG['csv_style']==1)? $key.$CFG['csv_delimiter'] : '';
    $conteudo .= ($CFG['csv_style']==1)? $val.$CFG['csv_delimiter'] : "$key: $val\r\n";
   }
  }
 }
}
return $conteudo;
}
function mail_it($destinatario_email, $assunto, $corpo, $remetente_email) {

 $header  = !empty($remetente_email)? "From: $remetente_email\r\n" : '';
 $header .= !empty($remetente_email)? "Reply-To: $remetente_email\r\n" : '';
 $header .= "X-Mailer: PHP mail ver".phpversion()."\r\n";
       mail($destinatario_email, $assunto, $corpo,$header);
}
/* ################################################################################
############# */
error_reporting(E_ERROR | E_WARNING | E_PARSE);

if(!empty($HTTP_GET_VARS)) {
while(list($xxxname, $value) = each($HTTP_GET_VARS)) {
 $$xxxname = $value;
   }
}
if(!empty($HTTP_POST_VARS)){
while(list($xxxname, $value) = each($HTTP_POST_VARS)) {
 $$xxxname = $value;
}
}
if(!empty($HTTP_POST_FILES)) {
while(list($xxxname, $value) = each($HTTP_POST_FILES)) {
    $$xxxname = $value['tmp_name'];
   }
}
/* ################################################################################
############# */
if(!empty($referencia_formulario))
{
verificar_referencia($referencia_formulario);
}
/* ################################################################################
############# */

$destinatario_array = split(',',$destinatario);
for($i=0; $i<count($destinatario_array); $i++)
{
$destinatario_testar = trim($destinatario_array[$i]);
if(!eregi("^[_\\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\\.)+[a-z]{2,4}$", $destinatario_testar))
{
 imprimir_erro($txt_msg['4']);
}
}
if(!empty($obrigatorio))
{
$campos_requeridos = $obrigatorio;
}
if(!empty($campos_requeridos))
{
$campos_requeridos = split(',',$campos_requeridos);
for($i=0; $i<count($campos_requeridos); $i++)
{
 $key_campo = trim($campos_requeridos[$i]);
 if(empty($$key_campo))
 {
  if(!empty($campos_faltando_redirecionar))
  {
   header ("Location: $campos_faltando_redirecionar");
   exit;
  }
  $campos_faltando_lista .= "<b>" . $txt_msg['5'] . ": $campos_requeridos[$i]</b><br>\n";
 }
 $val_campo = '';
}
if ($campos_faltando_lista)
{
 imprimir_erro($campos_faltando_lista,'falta');
}
}
if(empty($assunto))
{
$assunto = $txt_msg['7'];
}
if(!empty($email) || !empty($EMAIL))
{
$email = trim($email);
if ($EMAIL)
 $email = trim($EMAIL);
if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$", $email))
{
 imprimir_erro($txt_msg['6']);
}
$EMAIL = $email;
}
$conteudo = capturar_campos($HTTP_POST_VARS);
$conteudo = $CFG['csv_style']==1 ? "\n\n".$csv_header."\n".$conteudo."\n" : $conteudo;
mail_it($destinatario, stripslashes($assunto), stripslashes($conteudo), $email );

if(!empty($redirecionar))
{
header ("Location: $redirecionar");
exit;
}else{
pagina_cabecalho($txt_msg['10']);
print $txt_msg['8'];
echo "<br><br>\n</body></html>";
exit;
}

?>
aqui é parte da configuração dele no HTML
<input type="hidden" name="obrigatorio" value="nome,empresa,numero,valor,email">
                     <input type="hidden" name="destinatario" value="financeiro@bhr.com.br">
                     <!-- <input type="hidden" name="assunto" value="Formulario : respostas"> -->
                     <!-- <input type="hidden" name="campos_faltando_redirecionar" value="pagina_erro.html"> -->
                     <!-- <input type="hidden" name="redirecionar" value="pagina_sucesso.html"> -->
                   </center>

Como mencionei ele funcionava normal..depois da mudança no servidor deixou de funcionar...serah que tem jeito de aproveitar ?? Não sei se fui bem claro qualquer coisa to por aqui

Detalhe do erro:

A msg não chega pra mim (destinatario) esta indo pro email preenchido no formulario (remetente) e esta msg encaminhada é uma msg em branco.

A seguir link com o codigo do script detalhado neste forum que solicitei ajuda também hehehehe, mas ateh agora nada portanto ficaria agradecido se alguém pudesse dar uma força.. se precisarem segue meu MSN mfernandes2005@hotmail.com

Obrigado ph34r.gif

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

hm, cara, vou te confessar que li teu código muito rápidamente...

Se funcionava antes e agora ele continua enviando mas envia para os emails errados, provavelmente isso não é problemas no servidor... porque o que implicaria seria a configuração do smpt ou o impedimento do uso de algumas funções. Como ele ainda envia, o smtp está ok e não tem nenhum impedimento do uso de mail().

Sugiro que tu dê uma olhadinha no teu formulário(todo) e na chamada da função mail_it(); cujo protótipo se encontra no teu próprio código, já que estás mais familiarizado com o mesmo...

Abraço...

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,6k
×
×
  • Criar Novo...