Tenho um formulário em PHP, quando ele é preenchido e anexado alguma coisa nele, a mensagem final chega completa ao email; Mas quando deixa de anexar algum arquivo, a mensagem final não chega. Alguém sabe o que pode ser?
Códigos a seguir:
config.php
<?php /*Altere a cor que o campo ficará caso algum erro na validação, na variável $corerro*/ $aviso = false; $classaviso = 'none'; $corerro = '#FFBABA'; /*Defina aqui todos os campos do formulário na ordem Label, *name do input ou textarea, *valor inicial do campo (dica do que preencher),caso textarea, informe 'textarea', *caso textarea crie um array e defina rows e cols, conforme no exemplo abaixo, *defina no final se o campo é obrigario ou não com 1 ou 0 **/ $arraycampos = array( array('<b>Nome</b>','nome','Informe seu nome','obrigatorio'=>1), array('<b>E-mail</b>','email','Informe seu email','obrigatorio'=>1), array('<b>Telefone</b>','telefone','Informe seu telefone','obrigatorio'=>0), array('<b>Cidade</b>','cidade','Informe sua cidade','obrigatorio'=>0), array('<b>Assunto</b>','assunto','Informe o assunto','obrigatorio'=>1), array('<b>Anexo</b>','anexo','Incluir Arquivo Anexo', 'file', 'obrigatorio'=>0), array('<b>Mensagem</b>','mensagem','Escreva sua mensagem','textarea', array('rows'=>'8', 'col'=>'20'),'obrigatorio'=>1 ) ); function validacao($arraycampos){ $return = array(); if(isset($_POST)){ for($i=0;$i<count($arraycampos);$i++){ $campo = $arraycampos[$i][1]; if(isset($arraycampos[$i]['obrigatorio'])){ $obrigatorio = $arraycampos[$i]['obrigatorio']; }else{ $obrigatorio = false; } if(isset($_POST[$campo])){ if($obrigatorio){ if(trim($_POST[$campo])=='' || $_POST[$campo] == $arraycampos[$i][2]){ $return[] = $campo; } } } }
}else{ return false; } return $return; } /*Campos com erro*/ $campoerror = validacao($arraycampos); if(sizeof($campoerror) > 0){ $aviso = array(); $aviso[0] = 'Erro:<br>'; for($i=0;$i<count($campoerror);$i++){ $aviso[0] .= 'O campo '.$campoerror[$i].' é obrigatorio.<br>'; } $aviso[1] = 0; }
$html = '<html> <body>'; for($i=0;$i<count($arraycampos);$i++){ $campo = $arraycampos[$i][1]; if(isset($arraycampos[$i][3]) && isset($arraycampos[$i][3]) == 'file'){ continue; } $html .= '<p>'.$arraycampos[$i][0].': '.(isset($_POST[$campo])&& $_POST[$campo]!=$arraycampos[$i][2]?$_POST[$campo]:'').' </p>'; } require_once('setmail.php'); $mail->ClearAddresses(); //LISTA DE ENDERECOS QUE DEVE SER MANDADO O E-MAIL /*Nome da pessoa que enviou a mensagem, por padrão o nome informado no formulario*/ $mail->FromName = $nome; /*Responder para, por padrão o e-mail informado no formulario*/ $mail->AddReplyTo($email); $mail->AddAddress($email_do_seu_site,'TRABALHE CONOSCO'); $mail->AddAddress($email,$nome); $mail->AddBcc('email@email.com.br'); $mail->AddBcc('email2@email.com.br'); /*Se alterar o nome do campo file, mude o nome da varival anexo*/ $nome_anexo = 'anexo'; if (isset($_FILES[$nome_anexo]) && $_FILES[$nome_anexo]['error'] == UPLOAD_ERR_OK) { $mail->AddAttachment($_FILES[$nome_anexo]['tmp_name'], $_FILES[$nome_anexo]['name']); $html .= '<strong>MENSAGEM: </strong>'; $html .= $mensagem; } $mail->Subject = $assunto; $html .= ''; $msg = utf8_decode($html); $mail->Body = $msg;
//ENVIANDO E RETORNANDO STATUS DO ENVIO if(!$mail->Send()){ //ERRO NO ENVIO $aviso = array("Ocorreu um erro no envio do e-mail: '.$email.'. Erro: ".$mail->ErrorInfo,0); //FUNCAO INFORMA O ERRO OCORRIDO // }
?>
<!-- depois de enviado o email... --> <script language="JavaScript">alert('A sua mensagem foi enviada com sucesso!'); location.href='trabalheconosco2.php';</script> <!-- retorna para o index.. pode definir outra pagina tb... -->
PRECISO ENVIAR OS OUTROS CÓDIGOS OU SÓ POR ESSES DÁ PARA VER O ERRO?
Pergunta
daniel_elias_2015
Tenho um formulário em PHP, quando ele é preenchido e anexado alguma coisa nele, a mensagem final chega completa ao email; Mas quando deixa de anexar algum arquivo, a mensagem final não chega. Alguém sabe o que pode ser?
Códigos a seguir:
config.php
<?php
/*Altere a cor que o campo ficará caso algum erro na validação, na variável $corerro*/
$aviso = false; $classaviso = 'none'; $corerro = '#FFBABA';
/*Defina aqui todos os campos do formulário na ordem Label,
*name do input ou textarea,
*valor inicial do campo (dica do que preencher),caso textarea, informe 'textarea',
*caso textarea crie um array e defina rows e cols, conforme no exemplo abaixo,
*defina no final se o campo é obrigario ou não com 1 ou 0
**/
$arraycampos = array(
array('<b>Nome</b>','nome','Informe seu nome','obrigatorio'=>1),
array('<b>E-mail</b>','email','Informe seu email','obrigatorio'=>1),
array('<b>Telefone</b>','telefone','Informe seu telefone','obrigatorio'=>0),
array('<b>Cidade</b>','cidade','Informe sua cidade','obrigatorio'=>0),
array('<b>Assunto</b>','assunto','Informe o assunto','obrigatorio'=>1),
array('<b>Anexo</b>','anexo','Incluir Arquivo Anexo', 'file', 'obrigatorio'=>0),
array('<b>Mensagem</b>','mensagem','Escreva sua mensagem','textarea',
array('rows'=>'8', 'col'=>'20'),'obrigatorio'=>1
)
);
function validacao($arraycampos){
$return = array();
if(isset($_POST)){
for($i=0;$i<count($arraycampos);$i++){
$campo = $arraycampos[$i][1];
if(isset($arraycampos[$i]['obrigatorio'])){
$obrigatorio = $arraycampos[$i]['obrigatorio'];
}else{
$obrigatorio = false;
}
if(isset($_POST[$campo])){
if($obrigatorio){
if(trim($_POST[$campo])=='' || $_POST[$campo] == $arraycampos[$i][2]){
$return[] = $campo;
}
}
}
}
}else{
return false;
}
return $return;
}
/*Campos com erro*/
$campoerror = validacao($arraycampos);
if(sizeof($campoerror) > 0){
$aviso = array();
$aviso[0] = 'Erro:<br>';
for($i=0;$i<count($campoerror);$i++){
$aviso[0] .= 'O campo '.$campoerror[$i].' é obrigatorio.<br>';
}
$aviso[1] = 0;
}
?>
---------------------------------------------------------------------------------------------------------
enviaemail.php
<?php
/*Configuracaoo do seu e-mail*/
$email_do_seu_site = "emailqualquer";
$senha_do_seu_email = "senha";
$nome = $_POST['nome'];
$email = $_POST['email'];
$assunto = 'TRABALHE CONOSCO';
$mensagem = $_POST['mensagem'];
$html = '<html>
<body>';
for($i=0;$i<count($arraycampos);$i++){
$campo = $arraycampos[$i][1];
if(isset($arraycampos[$i][3]) && isset($arraycampos[$i][3]) == 'file'){
continue;
}
$html .= '<p>'.$arraycampos[$i][0].': '.(isset($_POST[$campo])&& $_POST[$campo]!=$arraycampos[$i][2]?$_POST[$campo]:'').' </p>';
}
require_once('setmail.php');
$mail->ClearAddresses();
//LISTA DE ENDERECOS QUE DEVE SER MANDADO O E-MAIL
/*Nome da pessoa que enviou a mensagem, por padrão o nome informado no formulario*/
$mail->FromName = $nome;
/*Responder para, por padrão o e-mail informado no formulario*/
$mail->AddReplyTo($email);
$mail->AddAddress($email_do_seu_site,'TRABALHE CONOSCO');
$mail->AddAddress($email,$nome);
$mail->AddBcc('email@email.com.br');
$mail->AddBcc('email2@email.com.br');
/*Se alterar o nome do campo file, mude o nome da varival anexo*/
$nome_anexo = 'anexo';
if (isset($_FILES[$nome_anexo]) && $_FILES[$nome_anexo]['error'] == UPLOAD_ERR_OK) {
$mail->AddAttachment($_FILES[$nome_anexo]['tmp_name'],
$_FILES[$nome_anexo]['name']);
$html .= '<strong>MENSAGEM: </strong>';
$html .= $mensagem;
}
$mail->Subject = $assunto;
$html .= '';
$msg = utf8_decode($html);
$mail->Body = $msg;
//ENVIANDO E RETORNANDO STATUS DO ENVIO
if(!$mail->Send()){
//ERRO NO ENVIO
$aviso = array("Ocorreu um erro no envio do e-mail: '.$email.'. Erro: ".$mail->ErrorInfo,0); //FUNCAO INFORMA O ERRO OCORRIDO //
}
?>
<!-- depois de enviado o email... -->
<script language="JavaScript">alert('A sua mensagem foi enviada com sucesso!');
location.href='trabalheconosco2.php';</script>
<!-- retorna para o index.. pode definir outra pagina tb... -->
PRECISO ENVIAR OS OUTROS CÓDIGOS OU SÓ POR ESSES DÁ PARA VER O ERRO?
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
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.