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

Formulário em PHP - não funciona


Juliano Russo de Andrade

Pergunta

Boa noite, pessoal.

Estou com um problema em um formulário que envia a mensagem para meu e-mail.

Não sei onde estou errando, ou se é problema no UolHost.

O site para testar é este, acesse o site e veja o erro na hora de enviar o formulário: www.atfutebol.com.br/enviar.php

Eu preencho o formulário e na hora de enviar e bum.

O código fonte:

<?php

/*apenas dispara o envio da mensagem caso houver/existir $_POST['enviar']*/
if (isset($_POST['enviar']))

{
/*digite os destinatarios separados por virgula*/
$destinatarios = 'contato@atfutebol.com.br';
/*usuario ou nome completo da conta criada em sua hospedagem, como por exemplo teste@seudominio*/
$usuario = 'contato@atfutebol.com.br';
/*senha da conta de email acima*/
$senha = 'secreta';
/*nome do destinatario no qual receberá a mensagem*/
$nomeDestinatario = 'Juliano Russo de Andrade';

/*abaixo as veriaveis principais, que devem conter em seu formulario*/
$nomeRemetente = $_POST['nomeRemetente'];
$resposta = $_POST['email'];
$assunto = $_POST['assunto'];
$_POST['mensagem'] = nl2br($_POST['mensagem']);

/***********************************A PARTIR DAQUI não ALTERAR************************************/
foreach ($_POST as $dados['me1'] => $dados['me2'])

{

$dados['me3'][] = '<b>'.$dados['me1'].'</b>: '.$dados['me2'];

}

$dados['me3'] = '<hr><h4>Mensagem do site</h4>'.implode('<br>', $dados['me3']).'<hr>';

$dados['email'] = array('usuario' => $usuario, 'senha' => $senha, 'servidor' => 'smtp.'.substr(strstr($usuario, '@'), 1), 'nomeRemetente' => $nomeRemetente, 'nomeDestinatario' => $nomeDestinatario, 'resposta' => $resposta, 'assunto' => $assunto, 'mensagem' => $dados['me3']);

ini_set('php_flag mail_filter', 0);

$conexao = fsockopen($dados['email']['servidor'], 587, $errno, $errstr, 10);
fgets($conexao, 512);

$dados['destinatarios'] = explode(',', $destinatarios);

foreach ($dados['destinatarios'] as $dados['1'])

{

$dados['destinatarios']['RCPTTO'][] = '< '.$dados['1'].' >';
$dados['destinatarios']['TO'][] = $dados['1'];

}

$dados['cabecalho'] = array('EHLO ' => $dados['email']['servidor'], 'AUTH LOGIN', base64_encode($dados['email']['usuario']), base64_encode($dados['email']['senha']), 'MAIL FROM: ' => '< '.$dados['email']['usuario'].' >', 'RCPT TO:' => $dados['destinatarios']['RCPTTO'], 'DATA', 'MIME-Version: ' => '1.0', 'Content-Type: text/html; charset=iso-8859-1', 'Date: ' => date('r',time()), 'From: ' => array($dados['email']['nomeRemetente'].' ' => '< '.$dados['email']['usuario'].' >'), 'To:' => array($dados['email']['nomeDestinatario'].' ' => $dados['destinatarios']['TO']), 'Reply-To: ' => $dados['email']['resposta'],'Subject: ' => $dados['email']['assunto'], 'mensagem' => $dados['email']['mensagem'], 'QUIT');

foreach ($dados['cabecalho'] as $dados['2'] => $dados['3'])

{

if (is_array($dados['3']))

{

foreach ($dados['3'] as $dados['4'] => $dados['5'])

{

$dados['4'] = empty($dados['4']) ? '' : $dados['4'];
$dados['5'] = empty($dados['5']) ? '' : $dados['5'];

$dados['4'] = is_numeric($dados['4']) ? '' : $dados['4'];

if (is_array($dados['5']))

{

$dados['5'] = "< ".implode(', ', $dados['5'])." >";

}

fwrite($conexao, $dados['2'].$dados['4'].$dados['5']."
", 512).'<br>';
fgets($conexao, 512);

}

}

else

{

$dados['2'] = empty($dados['2']) ? '' : $dados['2'];
$dados['3'] = empty($dados['3']) ? '' : $dados['3'];

$dados['2'] = is_numeric($dados['2']) ? '' : $dados['2'];

if ($dados['2'] == 'Subject: ')

{

fwrite($conexao, $dados['2'].$dados['3']."\r\n", 512).'<br>';
fwrite($conexao, "\r\n", 512).'<br>';
fgets($conexao, 512);

}

elseif ($dados['2'] == 'mensagem')

{

fwrite($conexao, $dados['3']."\r\n.\r\n").'<br>';
fgets($conexao);

}

else

{

fwrite($conexao, $dados['2'].$dados['3']."\r\n", 512).'<br>';
fgets($conexao, 512);

}

}

}

fclose($conexao);

}

?>
<!-- COMEÇA AQUI O FORMULARIO EM HTML -->
<!-- MAIS CAMPOS PODEM SER INSERIDOS NORMALMENTE ENTRE A TAG FORM -->
<html>
<head>
<title>Formulário de Contato</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<form method="post" action="">
<table width="401" bgcolor="#cccccc" border="1" cellspacing="0" cellpadding="0" align="center">
<tr>
<h1 align="center">
Formulario de teste
</h1>
<h5 align="center">
(smtp autenticado)
</h5>
<?php

if (isset($_POST['enviar']))

{

print "<h4 align=\"center\">A mensagem foi enviada!!!</h4>";

}

?>
</tr>
<tr>
<td valign="middle" nowrap>
<p>
<font color="#000">Nome:</font></p>
</td>
<td width="301">
<input type="text" name="nomeRemetente" size="34">
</td>
</tr>
<tr>
<td valign="middle" nowrap>
<p>
<font color="#000">E-mail:</font></p>
</td>
<td>
<input type="text" name="email" size="34">
</td>
</tr>
<tr>
<td valign="middle" nowrap>
<p><font color="#000">Assunto:</font></p>
</td>
<td>
<select name="assunto">
<option value="opnião" selected>opnião</option>
<option value="sugestão">sugestão</option>
<option value="parceria">Parceria</option>
<option value="outros">Outros</option>
</select>
</td>
</tr>
<tr>
<td valign="middle" nowrap align="center">
<p><font color="#000">Mensagem:</font></p>
</td>
<td>
<textarea name="mensagem" cols="34" rows="4"></textarea>
</td>
</tr>
<tr>
<td colspan="2" valign="middle">
<br>
<div align="center">
<input type="submit" name="enviar" value="enviar">
<input type="reset" name="limpar" value="limpar">
</div>
</td>
</tr>
</table>
</form>
</body>
</html>
<!-- TERMINA AQUI O FORMULARIO EM HTML -->

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

UolHost não pode ser, porque uso eles é de todos eles são os mais fáceis de usar. Cara tenta ver se teus cabeçalhos estão sendo passados corretamente.

Checa esse meu tutorial que ele pode te ajudar...

http://jeffersonoliveira.com.br/2011/03/en...o-via-mail-php/

Espero que tenha ajudado!

Abraços!

Link para o comentário
Compartilhar em outros sites

  • 0

Bom dia,

Estou com o mesmissimo problema!!Peguei o cogigo do enviar.php no uolhost e não funciona de jeito nehum!!já faz 2 dias q to quebrando a cabeca tentando descobrir o q ta errado mas ta impossivel!!

Meu enviar.php e esse:

<?php

/*apenas dispara o envio da mensagem caso houver/existir $_POST['enviar']*/

if (isset($_POST['enviar']))

{

/*digite os destinatarios separados por virgula*/

$destinatarios = 'japaservice1@gmail.com';

/*usuario ou nome completo da conta criada em sua hospedagem, como por exemplo teste@seudominio*/

$usuario = 'secreto.dominiotemporario.com';

/*senha da conta de email acima*/

$senha = 'secreto';

/*nome do destinatario no qual receberá a mensagem*/

$nomeDestinatario = 'mensagem do site';

/*abaixo as veriaveis principais, que devem conter em seu formulario*/

$nomeRemetente = $_POST['nomeRemetente'];

$resposta = $_POST['email'];

$assunto = $_POST['assunto'];

$_POST['mensagem'] = nl2br($_POST['mensagem']);

/***********************************A PARTIR DAQUI não ALTERAR************************************/

foreach ($_POST as $dados['me1'] => $dados['me2'])

{

$dados['me3'][] = '<b>'.$dados['me1'].'</b>: '.$dados['me2'];

}

$dados['me3'] = '<hr><h4>Mensagem do site</h4>'.implode('<br>', $dados['me3']).'<hr>';

$dados['email'] = array('usuario' => $usuario, 'senha' => $senha, 'servidor' => 'smtp.'.substr(strstr($usuario, '@'), 1), 'nomeRemetente' => $nomeRemetente, 'nomeDestinatario' => $nomeDestinatario, 'resposta' => $resposta, 'assunto' => $assunto, 'mensagem' => $dados['me3']);

ini_set('php_flag mail_filter', 0);

$conexao = fsockopen($dados['email']['servidor'], 587, $errno, $errstr, 10);

fgets($conexao, 512);

$dados['destinatarios'] = explode(',', $destinatarios);

foreach ($dados['destinatarios'] as $dados['1'])

{

$dados['destinatarios']['RCPTTO'][] = '< '.$dados['1'].' >';

$dados['destinatarios']['TO'][] = $dados['1'];

}

$dados['cabecalho'] = array('EHLO ' => $dados['email']['servidor'], 'AUTH LOGIN', base64_encode($dados['email']['usuario']), base64_encode($dados['email']['senha']), 'MAIL FROM: ' => '< '.$dados['email']['usuario'].' >', 'RCPT TO:' => $dados['destinatarios']['RCPTTO'], 'DATA', 'MIME-Version: ' => '1.0', 'Content-Type: text/html; charset=iso-8859-1', 'Date: ' => date('r',time()), 'From: ' => array($dados['email']['nomeRemetente'].' ' => '< '.$dados['email']['usuario'].' >'), 'To:' => array($dados['email']['nomeDestinatario'].' ' => $dados['destinatarios']['TO']), 'Reply-To: ' => $dados['email']['resposta'],'Subject: ' => $dados['email']['assunto'], 'mensagem' => $dados['email']['mensagem'], 'QUIT');

foreach ($dados['cabecalho'] as $dados['2'] => $dados['3'])

{

if (is_array($dados['3']))

{

foreach ($dados['3'] as $dados['4'] => $dados['5'])

{

$dados['4'] = empty($dados['4']) ? '' : $dados['4'];

$dados['5'] = empty($dados['5']) ? '' : $dados['5'];

$dados['4'] = is_numeric($dados['4']) ? '' : $dados['4'];

if (is_array($dados['5']))

{

$dados['5'] = "< ".implode(', ', $dados['5'])." >";

}

fwrite($conexao, $dados['2'].$dados['4'].$dados['5']."\r\n", 512).'<br>';

fgets($conexao, 512);

}

}

else

{

$dados['2'] = empty($dados['2']) ? '' : $dados['2'];

$dados['3'] = empty($dados['3']) ? '' : $dados['3'];

$dados['2'] = is_numeric($dados['2']) ? '' : $dados['2'];

if ($dados['2'] == 'Subject: ')

{

fwrite($conexao, $dados['2'].$dados['3']."\r\n", 512).'<br>';

fwrite($conexao, "\r\n", 512).'<br>';

fgets($conexao, 512);

}

elseif ($dados['2'] == 'mensagem')

{

fwrite($conexao, $dados['3']."\r\n.\r\n").'<br>';

fgets($conexao);

}

else

{

fwrite($conexao, $dados['2'].$dados['3']."\r\n", 512).'<br>';

fgets($conexao, 512);

}

}

}

fclose($conexao);

}

?>

Meu formulario esta dentro de uma tabela numa pagina do meu site e o cidigo do fromulario que peguei na pagina da uolhost e esse:

<form method=post" action="enviar.php">

<table width="401" bgcolor="#cccccc" border="1" cellspacing="0" cellpadding="0" align="center">

<tr>

<h1 align="center">

Formulario de teste

</h1>

<h5 align="center">

(smtp autenticado)

</h5>

<?php

if (isset($_POST['enviar]))

{

print "<h4 align=\"center\">A mensagem foi enviada!!!</h4>";

}

?>

</tr>

<tr>

<td valign="middle" nowrap>

<p>

<font color="#000">Nome:</font></p>

</td>

<td width="301">

<input type="text" name="nomeRemetente" size="34">

</td>

</tr>

<tr>

<td valign="middle" nowrap>

<p>

<font color="#000">E-mail:</font></p>

</td>

<td>

<input type="text" name="email" size="34">

</td>

</tr>

<tr>

<td valign="middle" nowrap>

<p><font color="#000">Assunto:</font></p>

</td>

<td>

<select name="assunto">

<option value="opnião" selected>opnião</option>

<option value="sugestão">sugestão</option>

<option value="parceria">Parceria</option>

<option value="outros">Outros</option>

</select>

</td>

</tr>

<tr>

<td valign="middle" nowrap align="center">

<p><font color="#000">Mensagem:</font></p>

</td>

<td>

<textarea name="mensagem" cols="34" rows="4"></textarea>

</td>

</tr>

<tr>

<td colspan="2" valign="middle">

<br>

<div align="center">

<input type="submit" name="enviar" value="enviar">

<input type="reset" name="limpar" value="limpar">

</div>

</td>

</tr>

</table>

</form>

Por favor,se alguém tiver uma solucao me ajudem eu imploro!!porque eu já não sei mas o que fazer!!

Desde já grata!

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