Sou iniciante em programação PHP, e atualmente estou desenvolvendo um site particular.
O que acontece é o seguinte estou tentando configurar a parte de enviar do formulario, para melhor me atender ao que preciso, e com isso fui criando, lendo várias coisas sobre o assunto e acho q em determinados pontos eu me perdi completamente o que ocasionou do script não funcionar nada, certo ou errado ele retorna tudo como errado, assim como uma auto-resposta que também não é enviada corretamente, básicamete nada funciona....
enfim vou postar aqui os códigos que estou utilizando, e gostaria que alguém pudesse me ajudar, me mostrando onde estou errando e o que poderia fazer para melhorar...Grato...
Arquivo ENVIAR.PHP
<?
/*
Script criado por:
Rogério Oliveira Yokoi
http://www.rogerioyokoi.com
*/
//Define o dia e hora em que a mensagem foi enviada
$data = date("d/m/Y h:i");
//Recebe os dados vindos do formulário para envia-los
$nome = $_POST["nome"];
$empresa = $_POST["empresa"];
$email = $_POST["email"];
$cidade = $_POST ["cidade"];
$assunto = $_POST ["assunto"];
$mensagem = $_POST ["mensagem"];
//Nesta parte será feita a verificação dos dados e se corretos envia-los ou retornar erro no preenchimento
//Assume-se com essa parte a delimitação minima de caracteres para cada campo
//Verifica o campo nome
if(strlen($nome)<3) //Verifica se o campo nome contém menos de 3 caracteres
echo "<script> window.alert('O campo NOME deve ser preenchido ou conter no minimo 3 caracteres!');</script>";//SE TIVER MENOS DE 5 CARACTERES ELE RETORNA A MENSAGEM DE ERRO
//Verifica o campo empresa
if(strlen($empresa)<3)
echo "<script> window.alert('O campo EMPRESA deve ser preenchido ou conter no minimo 3 caracteres!');</script>";
//Verifica o campo e-mail
if (substr_count($email,"@") == 0 || substr_count($email,".") == 0) //Condição para o campo email que deve existir o "@" e "."
echo "<script> window.alert('Verifique seu E-MAIL pode ter sido digitado incorretamente!');</script>";
//Verifica o campo cidade
if(strlen($cidade)<3)
echo "<script> window.alert('O campo CIDADE deve ser preenchido ou conter no minimo 3 caracteres!');</script>";
//Verifica o campo assunto
if(strlen($assunto)<3)
echo "<script> window.alert('O campo NOME deve ser preenchido ou conter no minimo 3 caracteres!');</script>";
//Verifica o campo empresa
if(strlen($mensagem)>20) || (strlen($mensagem)>500)
echo "<script> window.alert('O campo de MENSAGEM não deve conter menos de 20 ou mais de 500 caracteres!');</script>";
//Cabeçalho - Aqui contém os dados do site e o e-mail que recebe a mensagem e para onde redireciona no caso de sucesso
$nome_do_site="Rogério O. Yokoi";
$email_para_onde_vai_a_mensagem = "contato@rogerioyokoi.com";
$nome_de_quem_recebe_a_mensagem = "Rogério O. Yokoi";
$exibir_apos_enviar='http://www.rogerioyokoi.com';
//Configurações da mensagem original
$cabecalho_da_mensagem_original="From: $name <$email>\n";
$assunto_da_mensagem_original="Contato no Site";
//Aqui configura a forma de recebimento do e-mail
$configuracao_da_mensagem_original="
ENVIADO POR:\n
Nome: $nome\n
Empresa: $empresa\n
Email: $email\n
Cidade: $cidade\n
Assunto: $assunto\n
Mensagem: $mensagem\n
ENVIADO EM: $date
";
/* Para enviar email HTML, você precisa definir o header Content-type. */
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
//CONFIGURAÇÕES DA MENSAGEM DE RESPOSTA
// CASO $assunto_digitado_pelo_usuario="s" ESSA VARIAVEL RECEBERA AUTOMATICAMENTE A CONFIGURACAO
// "Re: $assunto"
$assunto_da_mensagem_de_resposta = "Confirmação";
$cabecalho_da_mensagem_de_resposta = "From: $nome_do_site < $email_para_onde_vai_a_mensagem>\n";
$configuracao_da_mensagem_de_resposta="
$headers
<head>
<title> $nome_site </title>
<link href="http://www.rogerioyokoi.com/auto-resposta/estilo.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="container">
<div id="corpo">
<img src="http://www.rogerioyokoi.com/auto-resposta/imagens/topo.png" alt="" />
<div id="texto">
<p>Caro <?php echo $nome ?>,</p>
<p>Agradeço sua mensagem de contato e o mais breve possivel estará sendo respondida a você!</p>
<p><?php echo $date ?></p>
<p> Segue abaixo o contato enviado por você</p>
<p><b>Assunto:</b><?php echo $assunto ?></p>
<p><b>Mensagem:</b><?php echo $mensagem ?></p>
<p>--------------------------------</p>
<p>Você não precisa responder a esta mensagem.</p>
<p>Atenciosamente,</p>
<p>Rogério Oliveira Yokoi</p>
<p><a href="http://www.rogerioyokoi.com">HTTP://WWW.ROGERIOYOKOI.COM</a></p>
</div>
</div>
</div>
</body>
";
// ****** IMPORTANTE ********
// A PARTIR DE AGORA RECOMENDA-SE QUE NÃO ALTERE O SCRIPT PARA QUE O SISTEMA FINCIONE CORRETAMENTE
// ****** IMPORTANTE ********
//ESSA VARIAVEL DEFINE SE É O USUARIO QUEM DIGITA O ASSUNTO OU SE DEVE ASSUMIR O ASSUNTO DEFINIDO
//POR VOCÊ CASO O USUARIO DEFINA O ASSUNTO PONHA "s" NO LUGAR DE "n" E CRIE O CAMPO DE NOME
//'assunto' NO FORMULARIO DE ENVIO
$assunto_digitado_pelo_usuario="s";
//ENVIO DA MENSAGEM ORIGINAL
$headers = "$cabecalho_da_mensagem_original";
if($assunto_digitado_pelo_usuario=="s"){
$assunto = "$assunto_da_mensagem_original";
}
$seuemail = "$email_para_onde_vai_a_mensagem";
$mensagem = "$configuracao_da_mensagem_original";
mail($seuemail,$assunto,$mensagem,$headers);
//ENVIO DE MENSAGEM DE RESPOSTA AUTOMATICA
$headers = "$cabecalho_da_mensagem_de_resposta";
if($assunto_digitado_pelo_usuario=="n"){
$assunto = "$assunto_da_mensagem_de_resposta";
}else{
$assunto = "Re: $assunto";
}
$mensagem = "$configuracao_da_mensagem_de_resposta";
mail($email,$assunto,$mensagem,$headers);
echo "<script>window.location='$exibir_apos_enviar'</script>";
?>
o código acredito eu estar bem comentado, mas irei explicar aqui o que eu gostaria que ele fizesse, tomando como principio que nada nele funciona e que esteja completamente errado.
Primeiramente, gostaria que ele recebe-se os dados vindos do formulário e verifica-se se estão dentro do padrão minimo que estou exigindo no formulário, caso certo ele passa pra frente, caso errado ele retornar um window.alert dizendo onde está errado.
Em segundo, após o envio correto gostaria que ele retorna-se à página principal mas trazendo no corpo do index.php um include contendo a frase de que o e-mail foi enviado com sucesso e que lhe foi mandado um e-mail de resposta dizendo que foi bem sucedido no envio e que o mais breve estarei respondendo ele, dai tentei configurar mas não consegui, ai vem uma pergunta onde eu coloquei o link para ir para http://www.rogerioyokoi.com, eu teria que por http://www.rogerioyokoi.com/index.php?area=sucesso ? e criar dentro dos cases um para ser denominado assim ?
a terceira coisa é no envio da auto resposta gostaria que ela fosse configurada com imagens e tudo mais, assim como descrito no código, eu criei uma mini pagina só para ser lida no e-mail do receptor com os links de referencia dentro do site....
Grato a todos.....
se algo ficou mal entendido e mesmo assim se sentir confortável em me ajudar estarei feliz em repor a explicação para seu melhor compreendimento....
Pergunta
Rogério Yokoi
Olá a todos, boa tarde.
Sou iniciante em programação PHP, e atualmente estou desenvolvendo um site particular.
O que acontece é o seguinte estou tentando configurar a parte de enviar do formulario, para melhor me atender ao que preciso, e com isso fui criando, lendo várias coisas sobre o assunto e acho q em determinados pontos eu me perdi completamente o que ocasionou do script não funcionar nada, certo ou errado ele retorna tudo como errado, assim como uma auto-resposta que também não é enviada corretamente, básicamete nada funciona....
enfim vou postar aqui os códigos que estou utilizando, e gostaria que alguém pudesse me ajudar, me mostrando onde estou errando e o que poderia fazer para melhorar...Grato...
Arquivo ENVIAR.PHP
<? /* Script criado por: Rogério Oliveira Yokoi http://www.rogerioyokoi.com */ //Define o dia e hora em que a mensagem foi enviada $data = date("d/m/Y h:i"); //Recebe os dados vindos do formulário para envia-los $nome = $_POST["nome"]; $empresa = $_POST["empresa"]; $email = $_POST["email"]; $cidade = $_POST ["cidade"]; $assunto = $_POST ["assunto"]; $mensagem = $_POST ["mensagem"]; //Nesta parte será feita a verificação dos dados e se corretos envia-los ou retornar erro no preenchimento //Assume-se com essa parte a delimitação minima de caracteres para cada campo //Verifica o campo nome if(strlen($nome)<3) //Verifica se o campo nome contém menos de 3 caracteres echo "<script> window.alert('O campo NOME deve ser preenchido ou conter no minimo 3 caracteres!');</script>";//SE TIVER MENOS DE 5 CARACTERES ELE RETORNA A MENSAGEM DE ERRO //Verifica o campo empresa if(strlen($empresa)<3) echo "<script> window.alert('O campo EMPRESA deve ser preenchido ou conter no minimo 3 caracteres!');</script>"; //Verifica o campo e-mail if (substr_count($email,"@") == 0 || substr_count($email,".") == 0) //Condição para o campo email que deve existir o "@" e "." echo "<script> window.alert('Verifique seu E-MAIL pode ter sido digitado incorretamente!');</script>"; //Verifica o campo cidade if(strlen($cidade)<3) echo "<script> window.alert('O campo CIDADE deve ser preenchido ou conter no minimo 3 caracteres!');</script>"; //Verifica o campo assunto if(strlen($assunto)<3) echo "<script> window.alert('O campo NOME deve ser preenchido ou conter no minimo 3 caracteres!');</script>"; //Verifica o campo empresa if(strlen($mensagem)>20) || (strlen($mensagem)>500) echo "<script> window.alert('O campo de MENSAGEM não deve conter menos de 20 ou mais de 500 caracteres!');</script>"; //Cabeçalho - Aqui contém os dados do site e o e-mail que recebe a mensagem e para onde redireciona no caso de sucesso $nome_do_site="Rogério O. Yokoi"; $email_para_onde_vai_a_mensagem = "contato@rogerioyokoi.com"; $nome_de_quem_recebe_a_mensagem = "Rogério O. Yokoi"; $exibir_apos_enviar='http://www.rogerioyokoi.com'; //Configurações da mensagem original $cabecalho_da_mensagem_original="From: $name <$email>\n"; $assunto_da_mensagem_original="Contato no Site"; //Aqui configura a forma de recebimento do e-mail $configuracao_da_mensagem_original=" ENVIADO POR:\n Nome: $nome\n Empresa: $empresa\n Email: $email\n Cidade: $cidade\n Assunto: $assunto\n Mensagem: $mensagem\n ENVIADO EM: $date "; /* Para enviar email HTML, você precisa definir o header Content-type. */ $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; //CONFIGURAÇÕES DA MENSAGEM DE RESPOSTA // CASO $assunto_digitado_pelo_usuario="s" ESSA VARIAVEL RECEBERA AUTOMATICAMENTE A CONFIGURACAO // "Re: $assunto" $assunto_da_mensagem_de_resposta = "Confirmação"; $cabecalho_da_mensagem_de_resposta = "From: $nome_do_site < $email_para_onde_vai_a_mensagem>\n"; $configuracao_da_mensagem_de_resposta=" $headers <head> <title> $nome_site </title> <link href="http://www.rogerioyokoi.com/auto-resposta/estilo.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="container"> <div id="corpo"> <img src="http://www.rogerioyokoi.com/auto-resposta/imagens/topo.png" alt="" /> <div id="texto"> <p>Caro <?php echo $nome ?>,</p> <p>Agradeço sua mensagem de contato e o mais breve possivel estará sendo respondida a você!</p> <p><?php echo $date ?></p> <p> Segue abaixo o contato enviado por você</p> <p><b>Assunto:</b><?php echo $assunto ?></p> <p><b>Mensagem:</b><?php echo $mensagem ?></p> <p>--------------------------------</p> <p>Você não precisa responder a esta mensagem.</p> <p>Atenciosamente,</p> <p>Rogério Oliveira Yokoi</p> <p><a href="http://www.rogerioyokoi.com">HTTP://WWW.ROGERIOYOKOI.COM</a></p> </div> </div> </div> </body> "; // ****** IMPORTANTE ******** // A PARTIR DE AGORA RECOMENDA-SE QUE NÃO ALTERE O SCRIPT PARA QUE O SISTEMA FINCIONE CORRETAMENTE // ****** IMPORTANTE ******** //ESSA VARIAVEL DEFINE SE É O USUARIO QUEM DIGITA O ASSUNTO OU SE DEVE ASSUMIR O ASSUNTO DEFINIDO //POR VOCÊ CASO O USUARIO DEFINA O ASSUNTO PONHA "s" NO LUGAR DE "n" E CRIE O CAMPO DE NOME //'assunto' NO FORMULARIO DE ENVIO $assunto_digitado_pelo_usuario="s"; //ENVIO DA MENSAGEM ORIGINAL $headers = "$cabecalho_da_mensagem_original"; if($assunto_digitado_pelo_usuario=="s"){ $assunto = "$assunto_da_mensagem_original"; } $seuemail = "$email_para_onde_vai_a_mensagem"; $mensagem = "$configuracao_da_mensagem_original"; mail($seuemail,$assunto,$mensagem,$headers); //ENVIO DE MENSAGEM DE RESPOSTA AUTOMATICA $headers = "$cabecalho_da_mensagem_de_resposta"; if($assunto_digitado_pelo_usuario=="n"){ $assunto = "$assunto_da_mensagem_de_resposta"; }else{ $assunto = "Re: $assunto"; } $mensagem = "$configuracao_da_mensagem_de_resposta"; mail($email,$assunto,$mensagem,$headers); echo "<script>window.location='$exibir_apos_enviar'</script>"; ?>o código acredito eu estar bem comentado, mas irei explicar aqui o que eu gostaria que ele fizesse, tomando como principio que nada nele funciona e que esteja completamente errado.
Primeiramente, gostaria que ele recebe-se os dados vindos do formulário e verifica-se se estão dentro do padrão minimo que estou exigindo no formulário, caso certo ele passa pra frente, caso errado ele retornar um window.alert dizendo onde está errado.
Em segundo, após o envio correto gostaria que ele retorna-se à página principal mas trazendo no corpo do index.php um include contendo a frase de que o e-mail foi enviado com sucesso e que lhe foi mandado um e-mail de resposta dizendo que foi bem sucedido no envio e que o mais breve estarei respondendo ele, dai tentei configurar mas não consegui, ai vem uma pergunta onde eu coloquei o link para ir para http://www.rogerioyokoi.com, eu teria que por http://www.rogerioyokoi.com/index.php?area=sucesso ? e criar dentro dos cases um para ser denominado assim ?
a terceira coisa é no envio da auto resposta gostaria que ela fosse configurada com imagens e tudo mais, assim como descrito no código, eu criei uma mini pagina só para ser lida no e-mail do receptor com os links de referencia dentro do site....
Grato a todos.....
se algo ficou mal entendido e mesmo assim se sentir confortável em me ajudar estarei feliz em repor a explicação para seu melhor compreendimento....
Muito obrigado a todos desde já!
Link para o comentário
Compartilhar em outros sites
5 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.