Viper33 1 Denunciar post Postado Maio 22, 2014 Tenho o código abaixo para envio de e-mail no meu site que apesar de funcionar está emitindo o seguinte aviso: Warning: mail()[function.mail]: Filename cannot be empty na linha 39. E nessa linha tenho o código: $envia = mail($para, "Comentário efetuado no site", $mensagem, $headers); Como corrigir isso? <?php error_reporting (E_ALL ^ E_NOTICE); $nome = $_POST['n_nome']; $email = $_POST['email']; $site = $_POST['n_site']; $comentario = $_POST['c_comentario']; $moderacao = $_POST['moderar']; $id_artigo = $_POST['identificacao']; if (($nome == "") || ($email == "") || ($comentario == "")){ echo "<p>Caro usuário, apenas o campo site pode ficar em branco! Preencha corretamente!</p>"; echo "<p><a href='./compacta.php'>Voltar</a></p>"; return false; } if(substr_count($email, "@") == 0 || substr_count($email, ".") == 0) { echo "<p>Caro usuário, informe seu e-mail corretamente!</p>"; echo "<p><a href='./compacta.php'>Voltar</a></p>"; return false; } $headers = "Content-type:text/html; charset=UTF-8<br>"; $headers = "From: $email"; $para = "xuxa@gmail.com"; $mensagem .= "De: $nome<br>"; $mensagem .= "E-mail: $email<br>"; $mensagem .= "Site: $site<br>"; $mensagem .= "Comentário: $comentario"; $envia = mail($para, "Comentário efetuado no site", $mensagem, $headers); $insere = $pdo->prepare("INSERT INTO `tb_comentarios` SET nome = ?, email = ?, site = ?, comentario = ?, moderacao = ?, id_artigo = ?"); $insereBanco = array($nome, $email, $site, $comentario, $moderacao, $id_artigo); if ($insere->execute($insereBanco)) { echo '<script>alert("Seu comentário foi enviado, porém, aguarda liberação do administrador do site! Obrigado!");history.back(1);</script>'; } exit(); ?> Compartilhar este post Link para o post Compartilhar em outros sites
buenoweb 7 Denunciar post Postado Maio 22, 2014 $envia = @mail($para, "Comentário efetuado no site", $mensagem, $headers); @ na frente omite mensagens de erro. Compartilhar este post Link para o post Compartilhar em outros sites
Viper33 1 Denunciar post Postado Maio 22, 2014 Beleza buenoweb. Resolveu o meu problema. Porém, fiquei com a sensação de que preciso descobrir o motivo desse aviso. Você sabe me informar? Estou marcando como resolvido. Muito obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
buenoweb 7 Denunciar post Postado Maio 22, 2014 Não tiro sua razão, por isso o @ deve ser usado com muita cautela e é indicado para situações que desejamos omitir um provável erro de execução. Pode ser erro no cabeçalho. o <br> não deve ser usado no cabeçalho. Substitua-o por \n Compartilhar este post Link para o post Compartilhar em outros sites
Viper33 1 Denunciar post Postado Maio 22, 2014 Ok. Mesmo sem o br continua dando a mensagem. Vou continuar testando no meu computador e online deixarei o @ por enquanto. Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites