Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Juninho Vox

Validação de Campo com PHP e MySQL

Recommended Posts

Pessoal, td beleza.

Minha dúvida acredito eu que vcs vão matar de cara, porém estou com problemas aqui.

Tenho um formulário com 4 campo de texto, são eles: CONSULTOR, EMPRESA, CONTATO, EMAIL. Nesse formulário os campos CONSULTOR, EMPRESA, CONTATO podem ser cadastrados repetidamente, porém o campo EMAIL tem que ser único. Na teoria o formulário teria que fazer uma consulta no MySQL e retornar uma resposta...se o valor digitado NÃO for encontrado no mysql ele permite o cadastro, se FOR encontrado um valor igual ele não deixa cadastrar e me retorna uma mensagem no próprio formulário. Eu coloquei no MySQL valor único, mas a resposta do MySQL chega a assustar, tenho que fazer uma resposta no próprio formulário e se possível até no mesmo campo de texto.

Vou postar abaixo meu código, assim facilita o entendimento de todos.

 

<?php require_once('Connections/connAgenciaEP2.php'); ?>
<?php
$ip = $_SERVER['REMOTE_ADDR'];
?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
 if (PHP_VERSION < 6) {
   $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
 }

 $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

 switch ($theType) {
   case "text":
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
     break;    
   case "long":
   case "int":
     $theValue = ($theValue != "") ? intval($theValue) : "NULL";
     break;
   case "double":
     $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
     break;
   case "date":
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
     break;
   case "defined":
     $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
     break;
 }
 return $theValue;
}
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
 $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "FormCadEmail")) {
 $insertSQL = sprintf("INSERT INTO EMAIL_MKT (EMPRESA, CONTATO, EMAIL, CONSULTOR, IP_CAD) VALUES (%s, %s, %s, %s, '$ip')",
                      GetSQLValueString(strtoupper($_POST['txtCliEmpresa']), "text"),
                      GetSQLValueString(strtoupper($_POST['txtCliContato']), "text"),
                      GetSQLValueString(strtolower($_POST['txtCliEmail']), "text"),
                      GetSQLValueString(strtoupper($_POST['cmbConsultor']), "text"));

 mysql_select_db($database_connAgenciaEP2, $connAgenciaEP2);
 $Result1 = mysql_query($insertSQL, $connAgenciaEP2) or die(mysql_error());

 $insertGoTo = "index_resposta.php";
 if (isset($_SERVER['QUERY_STRING'])) {
   $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
   $insertGoTo .= $_SERVER['QUERY_STRING'];
 }
 header(sprintf("Location: %s", $insertGoTo));
}

?>
<?php
$ip = $_SERVER['REMOTE_ADDR'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>...::: AGENCIA EP2 :::... Sistema para Cadastramento de E-mails</title>
<style type="text/css">
.bordaform {
border: solid 1px #FFF;
/*border-radius: 1em;*/
width:230px;
height:18px;
padding:1px 5px 1px 5px;
font-family: "Arial";
font-size:14px;
color:#000;}
.txtlist {
font-family:Arial;
font-size:14px;
color:#666;}
.txtform {
font-family:Arial;
font-size:14px;
color:#666;
margin-left:10px;}
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;}
#cabecalho {
width:100%;
height:50px;
background:url(imagens/img_fnd_cabecalho_consutores.jpg) repeat-x;
text-align:center;}
.texto1 {
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
font-size: 18px;
color: #FFF;
padding-top:10px;}
.texto2 {
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
font-size: 14px;
color: #FFF;
margin-left:7px;}
.texto3 {
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
font-size: 15px;
color: #C00;}
.texto4 {
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
font-size: 13px;
color: #666;
text-align:left;}
#fomulario {
margin-top:60px;}
</style>
</head>

<body background="imagens/fnd_back.jpg">
<div id="cabecalho" class="texto1">CADASTRO DE E-MAIL DE PROSPECTOS E CLIENTES REDE ESTADO</div>
<div id="fomulario"><table width="100%" border="0">
 <tr>

   <td align="center"><form action="<?php echo $editFormAction; ?>" id="FormCadEmail" name="FormCadEmail" method="POST">
     <table width="600" height="268" border="0">
       <tr>
         <td height="264" align="center" valign="top" background="imagens/fnd_cad_consultores.png"><table width="580" border="0">
           <tr>
             <td width="283" rowspan="7" align="center" valign="top"><table width="90%" border="0">
               <tr>
                 <td height="20"></td>
                 </tr>
               <tr>
                 <td class="texto4">Caros Gerentes, Consultores e Colaboradores,
                   esta ferramenta tem o objetivo de criar um
                   banco de emails para campanhas de email marketing
                   da Rede Estado, cadastre a empresa que desejar com
                   nome do contato e email!</td>
                 </tr>
               </table></td>
             <td width="28" height="30"> </td>
             <td colspan="2" align="left" valign="bottom" class="texto2">Consultor:</td>
           </tr>
           <tr>
             <td> </td>
             <td colspan="2" align="left"><select name="cmbConsultor" id="cmbConsultor" class="txtlist">
               <option>Selecione uma opção...</option>
               <option value="FERNANDO MAGALHAES">FERNANDO MAGALHAES</option>
               <option value="FLÁVIO ORTOLANO">FLÁVIO ORTOLANO</option>
               <option value="JEFERSOM VIDAL">JEFERSOM VIDAL</option>
               <option value="JULIO CESAR">JULIO CESAR</option>
               <option value="KARLA CHRIGUER">KARLA CHRIGUER</option>
               <option value="MARCELO RICARDO">MARCELO RICARDO</option>
               <option value="MARCIO PINHEIRO">MARCIO PINHEIRO</option>
               <option value="PAULO PERES">PAULO PERES</option>
               <option value="REGINALDO SANTOS">REGINALDO SANTOS</option>
               <option value="ROGÉRIO KOBAYASHI">ROGÉRIO KOBAYASHI</option>
               <option value="ESTADO MARKETING">ESTADO MARKETING</option>
               <option value="ESTADO CONTÁBIL">ESTADO CONTÁBIL</option>
               <option value="ESTADO CONDOMÍNIO">ESTADO CONDOMÍNIO</option>
               <option value="ESTADO CONSULTORIA">ESTADO CONSULTORIA</option>
               <option value="ESTADO IMÓVEIS">ESTADO IMÓVEIS</option>
               <option value="SATURNINO & CRUZ">SATURNINO & CRUZ</option>
               <option value="SOFT & CIA">SOFT & CIA</option>
               <option value="TIJOLOS FIX">TIJOLOS FIX</option>
             </select></td>
             </tr>
           <tr>
             <td> </td>
             <td colspan="2" align="left" class="texto2">Nome da Empresa:</td>
             </tr>
           <tr>
             <td> </td>
             <td colspan="2" align="left"><input type="text" name="txtCliEmpresa" id="txtCliEmpresa" class="bordaform" /></td>
             </tr>
           <tr>
             <td> </td>
             <td colspan="2" align="left" class="texto2">Nome do Contato:</td>
             </tr>
           <tr>
             <td> </td>
             <td width="232" align="left"><input type="text" name="txtCliContato" id="txtCliContato" class="bordaform" /></td>
             <td width="19" align="left"> </td>
             </tr>
           <tr>
             <td> </td>
             <td align="left"><span class="texto2">E-mail do Contato:</span></td>
             <td align="left"> </td>
             </tr>
           <tr>
             <td> </td>
             <td> </td>
             <td align="left"><input type="text" name="txtCliEmail" id="txtCliEmail" class="bordaform" /></td>
             <td align="left"> </td>
             </tr>
           <tr>
             <td> </td>
             <td> </td>
             <td align="right"><input type="submit" name="button" id="button" value="Cadastrar" /></td>
             <td align="left"> </td>
           </tr>
           </table></td>
         </tr>
       </table>
     <input type="hidden" name="MM_insert" value="FormCadEmail" />
   </form></td>
   </tr>
 <tr>
<td align="center" class="texto3"> </td>
 </tr>
</table>
</div>
</body>
</html>

 

Abraços a tds

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exemplo de consulta ajax:

http://wbruno.com.br/blog/2009/08/14/verificar-se-usuario-ja-existe-no-banco/

 

Topico Movido:

CSS :seta: PHP

Compartilhar este post


Link para o post
Compartilhar em outros sites

o mais indicado eh fazer esta validacao no cliente, você pode usar o plugin jquery validate pra fazer isso...no portal imasters tem um artigo sobre ele...

Para o fim que preciso, não posso validar o cliente, tenho que validar apenas o e-mail, terei muitos e-mais de um mesmo cliente!

 

Valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

JA TENTO COLOCAR O CAMPO COMO UNITARIO NA TABELA ASSIM FUNCIONA COMIGO

 

bom dia PESSOAL só me da uma forma de pensar por favor,

 

O codigo está perfeito não ta faltando nada, eu testo um por um com or die ou echo para ver se respondem

 

mas quando chega no mysql_num_rows

ele para nao responde, ja passei por isso com o guery, e derepente ele funciono do nada no outro dia ele para dinovo sempre no campo email e depois volto,

sendo assim minha pergunta é:

 

Nesse ramo de programação e normal a gente ficar batendo cabeça com um conportamento estranho que pode vir do servidor, ou do editor php, sei lá cara.

 

so quero saber se e conportamento estranho que tenho passado é eu mesmo ? coisa que acho dificil o cod ta perfeito

 

obrigado por ler

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.