Jump to content


Photo

Dúvidas O Que Fazer?


  • Faça o login para participar
2 replies to this topic

#1 Nak kaballa

Nak kaballa

    Novato no fórum

  • Usuários
  • 17 posts
  • Sexo:Não informado

Posted 01/05/2007, 13:28

Caros Participantes,

Tenho dúvidas e gostaria de alguma ajuda.

Fiz um formulário meio na unha e olhando em vários tópicos e cheguei nos códigos abaixo, tentei usar...Ex.: if(in_array('',$_POST)) exit("Preencha todos o formulário, por favor."); abre uma página com o texto só que o formulário é enviado do mesma forma acumulando e-mails incompletos.


Minhas dúvidas são:

1- como bloquear o envio de e-mail em branco ou parcialmente preenchido.

2- na tentativa de envio do formulário em branco ou parcialmente preenchido que ele seja
direcionado para uma página minha com o texto de advertência com um botão
de volta, sem perder o que já foi preenchido quando o botão seja usado.

3- com todos os dados preenchidos corretamente, no ato do envio do formulário
ele seja direcionado para uma página minha com um texto de agradecimento.


enviar.php

[codebox]<?php
$destino = "meu_email@provedor.com.br";

$assunto = "CADASTRO";

$msg = "Formulário enviado em " . date("d/m/Y") . " às " . date("H:i") . ":\n\n";

foreach($_POST as $campo => $valor)
{
$msg .= ucfirst($campo) . ": " . $valor . "\n";
}

mail($destino, $assunto, $redirect, $msg);

if(in_array('',$_POST)) exit("Preencha todos o formulário, por favor.");

?>[/codebox]


cadastro.html

[codebox]<html>
<head>
<title>CADASTRO</title>
<meta http-equiv="Content-Type" content="text; charset=iso-8859-1">
<meta http-equiv="imagetoolbar" content="no">

<style type="text/css">
<!--
body,td,th {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
}

.style14 {color: #FFFFFF; font-weight: bold; font-style: italic;}
.style16 {color: #FFFFFF; font-weight: bold;}
.style6 {color: #FFFFFF}
body {
background-image: url(images/promocao.jpg);
background-repeat: no-repeat;
}
-->
</style>


<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><body>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<form name="cadastro" id="cadastro" method="post" action="enviar.php">
<p>
<label><font face="Arial"><span class="style14"> <br />
<br />
Nome Completo </span><br />

<input name="NOME" type="text" id="NOME" size="50" maxlength="50" />
</font> </label>
<font face="Arial"> <br />
</font>
<label><font face="Arial"><span class="style14"> E-mail</span><br />

<input name="E-MAIL" type="text" id="E-MAIL" size="40" maxlength="50" />
</font> </label>
<font face="Arial"> <br />
<span class="style6">
<label><em><strong> Fone</strong></em></label>
<br />
</span> </font>
<label> <font face="Arial">
<input name="FONE" type="text" id="FONE" size="24" />
<span class="style14"> Sexo</span>
<input name="radiobutton" type="radio" value="radiobutton1" checked="checked" />
<span class="style16">M</span></font></label>
<font face="Arial"> </font> <span class="style16">
<label> <font face="Arial">
<input name="radiobutton" type="radio" value="radiobutton2" />
F</font></label>
<font face="Arial"> </font> </span> <font face="Arial"> <br />
</font>
<label><font face="Arial"><span class="style14"> Endereço<br />
</span>
<input name="ENDERECO" type="text" id="ENDERECO" size="50" maxlength="50" />
</font> </label>
<font face="Arial"> <br />
</font>
<label><font face="Arial"><span class="style14"> Bairro </span><br />

<input name="BAIRRO" type="text" id="BAIRRO" size="30" maxlength="30" />
</font> </label>
<font face="Arial"> <br />
</font>
<label><font face="Arial"><span class="style14"> Cidade<br />
</span>
<input name="CIDADE" type="text" id="CIDADE" size="40" maxlength="40" />
<br />
</font> <span class="style6"><em><strong><font face="Arial"> CEP </font></strong></em></span></label>
<strong><font face="Arial"><em><span class="style6"> Estado</span></em></font></strong>
<label><span class="style6"><em><strong><font face="Arial"> <br />
</font></strong></em></span>
<input name="CEP" type="text" id="CEP" size="10" maxlength="10" />
<span class="style6"><em><strong> </strong></em></span> </label>
<font face="Arial"> </font><strong><font face="Arial"><em>
<select name="ESTADO" id="ESTADO">
<option>AC</option>
<option>AL</option>
<option>AM</option>
<option>AP</option>
<option>BA</option>
<option>CE</option>
<option>DF</option>
<option>ES</option>
<option>GO</option>
<option>MA</option>
<option>MG</option>
<option>MS</option>
<option>MT</option>
<option>PA</option>
<option>PB</option>
<option>PE</option>
<option>PI</option>
<option>PR</option>
<option>RJ</option>
<option>RN</option>
<option>RO</option>
<option>RR</option>
<option>RS</option>
<option>SC</option>
<option>SE</option>
<option selected="selected">SP</option>
<option>TO</option>
</select>
</em>
</font></strong><br />
<label> <font face="Arial"> <br />



<input type="submit" name="Submit" value="Enviar">
<input type="reset" name="Submit2" value="Limpar">
<a href="http://www.meu_site....obrigado.html">
<input type=button name="Submit3" value="Volta"></a>
<input type="hidden" name="subject" value="Formulário preenchido">

</form>
<p> </p>
</body>
</html>[/codebox]



Agradeço qualquer ajuda.


Kaballa

Edição feita por: Nak kaballa, 01/05/2007, 13:33.


#2 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 01/05/2007, 13:49

Bem eu não entendi por que o "in_array" já que ele é usado para procurar se há um valor especifico e não um monte ....
Da forma que está você pode fazer assim ...

<?php
$destino = "meu_email@provedor.com.br";
$assunto = "CADASTRO";
$msg	 = "Formulário enviado em " . date("d/m/Y") . " às " . date("H:i") . ":\r\n\r\n";

foreach ($_POST as $campo => $valor) {
 if (!empty($valor)) {  // Verifica se há um valor preenchido  
  $msg .= ucfirst($campo) . ": " . $valor . "\n";
 } else {  // Mostra o erro e para a execução do script ....
  echo 'Por favor, preencha o campo: ' . $campo;
  break;
  exit();
 } 
}

mail($destino, $assunto, $redirect, $msg);  // Envia o e-mail para vc ...
header("Location: sua_pagina_de_agradecimento.html");  // Redireciona para a página de agradecimento 
exit();
?>


#3 Nak kaballa

Nak kaballa

    Novato no fórum

  • Usuários
  • 17 posts
  • Sexo:Não informado

Posted 02/05/2007, 08:02

Bem eu não entendi por que o "in_array" já que ele é usado para procurar se há um valor especifico e não um monte ....
Da forma que está você pode fazer assim ...

<?php
$destino = "meu_email@provedor.com.br";
$assunto = "CADASTRO";
$msg	 = "Formulário enviado em " . date("d/m/Y") . " às " . date("H:i") . ":\r\n\r\n";

foreach ($_POST as $campo => $valor) {
 if (!empty($valor)) {  // Verifica se há um valor preenchido  
  $msg .= ucfirst($campo) . ": " . $valor . "\n";
 } else {  // Mostra o erro e para a execução do script ....
  echo 'Por favor, preencha o campo: ' . $campo;
  break;
  exit();
 } 
}

mail($destino, $assunto, $redirect, $msg);  // Envia o e-mail para vc ...
header("Location: sua_pagina_de_agradecimento.html");  // Redireciona para a página de agradecimento 
exit();
?>



Caro sk15,


Obrigado pela atenção, mas eu acho melhor explicar uma coisa...o novato que aparece abaixo do meu nick name
é para valer na área de programação, a minha área e editoração, criação e paginação(corel, photoshop, ventura, indesign, etc).

Cai de gaiato no navio, mesmo, mas vamos lá.

Tentando achar uma solução para o meu cliente fui pesquisando aqui no fórum achei varias coisas para montar
o resto site que ele precisa e acabei topando com o "in_array" no tópico http://forum.wmonlin...howtopic=167160
na hora me parecia que resolveria o meu problema...só isso.

Agora vou pegar o seu código e testar, rezando para que ele resolva as minhas 3 dúvidas, caso não resolva por completo, espero
contar com a sua atenção novamente.

Assim que eu tiver o resultado eu aviso.

Obrigado,

Kaballa



Caro sk15,

Testei o seu código, mas continuo com o problema do envio do formulário incompleto.

Vamos por partes:

1- quando apertei enviar ouve uma troca de página com a seguinte msg:
Por favor, preencha o campo: E-MAIL
Warning: Cannot modify header information - headers already sent by
(output started at /web/home.ftp/meudominio/meusite.com.br/contato/enviar.php:10)
in /web/home.ftp/meudominio/meusite.com.br/contato/enviar.php on line 17

2- segue abaixo o formulário enviado:

Formulário enviado em 01/05/2007 às 19:36:

NOME: kaballa



De uma forma já foi um avanço, pq não veio o restante do formulário em branco.

Mas o que estou precisando conforme as minhas dúvidas colocadas mais acima é que:

1- que não deixe o e-mail incompleto ser enviado;
2- que na tentativa de enviar incompleto direcione para uma página minha em html com o aviso de completar o formulário;
3- no caso da minha terceira dúvida. "RESOLVIDO COM LOUVOR".

Espero que a colocação das informações acima ajudem na solução da minha falta de conhecimento.


Mas continuo a procurar no fórum...PQ achei muito legal, garimpar linhas de código e ver o resultado.


obrigado,

semper fidelis.


Kaballa

Edição feita por: Nak kaballa, 03/05/2007, 07:02.





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq