Ir para conteúdo

Arquivado

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

Ricardos

Validar campos

Recommended Posts

Boa noite pessoal! Bom gostaria da ajuda de vcs para validar uns campos que tenho em meu formulario. É um cadastro de usuarios, e gotaria que os capos como data, CPF, CNH, fossem validados antes de gravar no BD. Alguem poderia me ajudar. Este é meu projeto de TCC que irei apresentar mês que vem.

 

 

Obrigado

 

Segue os Script

 

<td>CPF</td>
 </tr>
 <tr>
 <td><input type="text" size="15" name="cl_cpf" value="<? echo @$_SESSION["cl_cpf"]?>" 
	 			onkeypress="mascara(this,cpf)" maxlength="14" /></td>
 </tr>
 

<td>CNH</td>
 </tr>
			<tr>
 <td><input type="text" size="15" maxlength="15" name="cl_cnh" value="<? echo @$_SESSION["cl_cnh"]?>" /></td>
 </tr>
			<tr>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, essa de CPF eu sei que funciona, agora, a de CNH, como acabei de escrever, significa que precisa de testes. Então, se possível, faça o teste e poste aqui o resultado.

 

/**
* Valida uma CNH
* @param string $cnh A CNH
* @return boolean
*/
function isValidCNH( $cnh ) {
$ret = false;

if ( is_string( $cnh ) ) {
	if ( ( strlen( $cnh = preg_replace( '/[^\d]/' , '' , $cnh ) ) == 11 ) && ( str_repeat( $cnh{ 1 } , 11 ) != $cnh ) ) {
		$dsc = 0;

		for ( $i = 0 , $j = 9 , $v = 0 ; $i < 9 ; ++$i , --$j )
			$v += (int) $cnh{ $i } * $j;

		if ( ( $vl1 = $v % 11 ) >= 10 ) {
			$vl1 = 0;
			$dsc = 2;
		}

		for ( $i = 0 , $j = 1 , $v = 0 ; $i < 9 ; ++$i , ++$j )
			$v += (int) $cnh{ $i } * $j;

		$vl2 = ( $x = ( $v % 11 ) ) >= 10 ? 0 : $x - $dsc;
		$ret = sprintf( '%d%d' , $vl1 , $vl2 ) == substr( $cnh , -2 );
	}
}

return $ret;
}

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, minha dúvida é onde eu coloco este código, antes daqueles que eu postei, depois, em outro script?

 

 

Obrigado

 

Segue meu script completo, do cadastro de usuarios!

 

<?php
	//session_start();
	include("funcoes.php");
    $usuario = @$_SESSION['nome'];
    $acesso = @$_SESSION['acesso'];
    if ($usuario == null){
        echo "Redirecionando...<br/>";
        echo "<meta HTTP-EQUIV='Refresh' CONTENT='0;URL=login.php?erro=3'>";
    }
    if ($acesso==0){
        echo "Redirecionando...<br/>";
        echo "<meta HTTP-EQUIV='Refresh' CONTENT='0;URL=login.php?erro=4'>";
    }
	$admselected = "";
	$tecselected = "";
	if (@$_SESSION["cl_acesso"] == 1)
		$admselect = "selected";
	else
		$tecselect = "selected";

	include ("header.php");
	?>
<script>
 function somente_numero(campo){
 var digits="0123456789"
 var campo_temp
     for (var i=0;i<campo.value.length;i++){
         campo_temp=campo.value.substring(i,i+1)
         if (digits.indexOf(campo_temp)==-1){
             campo.value = campo.value.substring(0,i);
         }
     }
 }

</script>
<style type="text/css">
<!--
.style1 {
	font-size: 24px;
	color: #6699CC;
	font-weight: bold;
}
-->
</style>
    
<div id="migalhas">
    <p>Você está em <a href="agenda.php" title="Home">Home</a> > Cadastro de Colaborador</p>
</div>
    <div id="tela" style="padding-left:10px">
        <h1 class="style1">CADASTRO DE COLABORADOR</h1>
      <h6>Os campos em vermelho são obrigatórios</h6>
        <form action="" method="post" id="form-cadastros" name="formulario">
		<table>
		<th colspan="2">  <? imprimeErros();  ?></th>
		<tr><td>
		<!-- primeira coluna-->
		<table width="357" border="0">
            <tr>
              <td width="351">Código</td>
            </tr>
            <tr>
              <td><input type="text" size="10" style="background-color:#999999; text-align:right;font-weight:bold" readonly name="cl_id" value="<? echo @$_SESSION["cl_id"]?>"/></td>
            </tr>
            <tr>
              <td>Nome</td>
            </tr>
            <tr>
              <td>
			  <input type="text" style="border-color:red" size="40" maxlength="40" name="cl_nome" value="<? echo @$_SESSION["cl_nome"]?>"  />
			  </td>
            </tr>
			<tr>
              <td>Senha</td>
            </tr>
            <tr>
              <td><input type="password" size="10" maxlength="40" name="cl_senha" value="<? echo @$_SESSION["cl_senha"]?>"  /></td>
            </tr>
            <tr>
              <td>Acesso</td>
            </tr>
            <tr>
              <td>
			  <select  name="cl_acesso">
			  <option value="1" <? echo @$admselect ?> >Administrador</option>
			  <option value="0" <? echo @$tecselect ?> >Técnico</option>
			  </select>			 
               </td>
            </tr>
			<tr>
            
              <td>Data Nascimento</td>
            </tr>
            <tr>
              <td><input type="text" size="10" maxlength="10" name="cl_dtnasc"  style="border-color:red"
			  		value="<? echo @$_SESSION["cl_dtnasc"]?>" onblur="validaData(this)"  onkeypress="mascara(this,data)"/>
					<img src="images/calendar.jpg" 
					onmouseover="Tip('Clique para selecionar uma data')" onmouseout="UnTip()"
					onclick="displayCalendar(document.forms['formulario'].cl_dtnasc,'dd/mm/yyyy',this)"/>			  </td>
            </tr>
			<tr>
              <td>Endereço</td>
            </tr>
            <tr>
              <td><input type="text" size="40" maxlength="40" style="border-color:red"
			   name="cl_endereco" value="<? echo @$_SESSION["cl_endereco"]?>"  /></td>
            </tr>
			<tr>
              <td>Número</td>
            </tr>
            <tr>
              <td><input type="text" size="10"  style="border-color:red;text-align:right" maxlength="10" name="cl_nroend" value="<? echo @$_SESSION["cl_nroend"]?>" onkeyup="somente_numero(this);"  /></td>
            </tr>
			<tr>
              <td>Complemento</td>
            </tr>
            <tr>
              <td><input type="text" size="40" maxlength="40" name="cl_complend" value="<? echo @$_SESSION["cl_complend"]?>"  /></td>
            </tr>
			<tr>
              <td>Bairro</td>
            </tr>
            <tr>
              <td><input type="text" size="40" maxlength="40" name="cl_bairroend"  style="border-color:red"value="<? echo @$_SESSION["cl_bairroend"]?>"  /></td>
            </tr>
			<tr>
              <td>CEP</td>
            </tr>
            <tr>
              <td><input type="text" size="10" maxlength="10" onkeypress="mascara(this,cep)"
			  name="cl_cepend" value="<? echo @$_SESSION["cl_cepend"]?>"  /></td>
            </tr>
			<tr>
              <td>Cidade</td>
            </tr>
            <tr>
              <td><input type="text" style="border-color:red;background-color:#999999; text-align:right;font-weight:bold"
			  			 size="10" readonly maxlength="10" name="cidade_id"
			  			value="<? echo @$_SESSION["cidade_id"]?>"  />
						<img src="images/icon_pesq.GIF" alt="Clique para pesquisar" 
						onmouseover="Tip('Clique para Pesquisar a Cidade')" onmouseout="UnTip()"
							onclick="doSubmit('colaboradordao.php?acao=pesquisacidade');"/>
						<? echo @ $_SESSION["cidade"]?>			  </td>
            </tr>	
			<tr>
              <td>Departamento</td>
            </tr>
            <tr>
              <td><input type="text" style="border-color:red;background-color:#999999; text-align:right;font-weight:bold"
			  			 size="10" readonly maxlength="10" name="departamento_id"
			  			value="<? echo @$_SESSION["departamento_id"]?>"  />
						<img src="images/icon_pesq.GIF" alt="Clique para pesquisar" 
						onmouseover="Tip('Clique para Pesquisar o Departamento')" onmouseout="UnTip()"
							onclick="doSubmit('colaboradordao.php?acao=pesquisadepartamento');"/>
						<? echo @$_SESSION["departamento"]?>			  </td>
            </tr>			
            </table>
		</td><td>
		<!-- segunda coluna-->
		<table>
			<tr>
              <td>CPF</td>
            </tr>
            <tr>
              <td><input type="text" size="15" name="cl_cpf" value="<? echo @$_SESSION["cl_cpf"]?>" 
			  			onkeypress="mascara(this,cpf)" maxlength="14" /></td>

            </tr>
			<tr>
            </tr>	
			<tr>
              <td>Fone Residencial</td>
            </tr>
            <tr>
              <td><input type="text" size="20" maxlength="20" name="cl_foneres" 
			  	onkeypress="mascara(this,telefone)" value="<? echo @$_SESSION["cl_foneres"]?>"  /></td>
            </tr>
			<tr>
              <td>Celular</td>
            </tr>
            <tr>
              <td><input type="text" size="20" maxlength="20" onkeypress="mascara(this,telefone)"
			  		name="cl_fonecel" value="<? echo @$_SESSION["cl_fonecel"]?>"  /></td>
            </tr>
              <td>CNH</td>
            </tr>
			<tr>
              <td><input type="text" size="15" maxlength="15" name="cl_cnh" value="<? echo @$_SESSION["cl_cnh"]?>"  /></td>
            </tr>
			<tr>
              <td>Validade CNH</td>
            </tr>
            <tr>
              <td>
			  	<input type="text" size="10" maxlength="10" name="cl_validcnh" value="<? echo @$_SESSION["cl_validcnh"]?>" 
					onkeypress="mascara(this,data)" onblur="validaData(this)" style="border-color:red"/>
			  <img src="images/calendar.jpg"
			  onmouseover="Tip('Clique para selecionar uma data')" onmouseout="UnTip()"
			   onclick="displayCalendar(document.forms['formulario'].cl_validcnh,'dd/mm/yyyy',this)"/></td>
            </tr>
			<tr>
              <td>Categoria CNH</td>
            </tr>
            <tr>
              <td><input type="text" size="1" maxlength="1" name="cl_catcnh" value="<? echo @$_SESSION["cl_catcnh"]?>"  /></td>
            </tr>		
			<tr>
              <td>Observações:</td>
            </tr>
            <tr>
              <td>
			  <textarea style="margin-bottom:10px;" name="cl_obs" rows="4" cols="50" ><? echo @$_SESSION["cl_obs"]?></textarea>			  </td>
            </tr>
            <tr>
              <td><input type="checkbox" name="cl_ativo" <? echo @$_SESSION["cl_ativo"]?>/>
              Ativo</td>
            </tr>            
          </table>
		</td></tr>
		<tr><td colspan="2">
			 	<input type="submit" value="Gravar" 	 onclick="doSubmit('colaboradordao.php?acao=gravar');"/>
                <input type="submit" value="Novo"	     onclick="doSubmit('colaboradordao.php?acao=novo');"/>
				<input type="submit" value="Pesquisar"   onclick="doSubmit('colaboradorpesq.php?titulo=Pesquisa de Colaboradores');"/>
                <input type="submit" value="Excluir"     onclick="doSubmit('colaboradordao.php?acao=excluir');"/>
		</td></tr>
		</table>
        </form>


    </div>

</div>
</body>

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ricardos,

 

Tanto o de CPF quanto o de CNH, são interessantes que fiquem em um arquivo separado, isso porque você poderá utilizá-los em outros projetos.

 

Como validação de verdade ocorre no lado do servidor, você deverá receber os dados enviados pelo usuário e validá-los:

 

require 'validacoes.php'; //nesse arquivo estarão as funções de validação de CPF e CNH, entre outras

$cpf =& $_POST[ 'cpf' ];
$cnh =& $_POST[ 'cnh' ];

if ( !isValidCPF( $cpf ) ) echo 'CPF inválido.';
elseif ( !isValidCNH( $cnh ) ) echo 'CNH inválido';
else {
echo 'Tudo ok';
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo eu tenho o arquivo cadastro.php que contém os campos. Nesse eu insiro os códigos que você fez. Depois crio o validacoes.php e coloco aquele outro codigo certo?

 

Desculpa aí a ignorancia.

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.