JorgitoDF 0 Denunciar post Postado Agosto 21, 2012 Boa tarde a todos, Preciso de uma ajuda nesta questão, "Validar Dados em PHP inseridos em um formulário Antes de gravá-los no Banco de Dados". O Código de todas as validações já estão pronto, o que eu não estou conseguindo fazer é o seguinte: Pox exemplo: Caso o campo nome esteja inválido (em branco ou com menos de 5 letras) a mensagem de erro seja impressa ao lado da box input no próprio formulário de cadastro. Porém não quero deixar o código de validação no mesmo arquivo do formulário o cadastro.html, preciso deixa-lo em outro no validação.php Para que caso exista algum erro o usuário seja alertado no próprio formulário de cadastro antes de passar para o servidor e antes de gravar no banco de dados.... Alguém pode me ajudar? Desde já agraço..... Compartilhar este post Link para o post Compartilhar em outros sites
EuToComProblema! 1 Denunciar post Postado Agosto 21, 2012 para validar por php já vai passar pelo servidor. se quer evitar essa requisição tem que fazer uma validação por javascript. Fica até melhor de fazer. Compartilhar este post Link para o post Compartilhar em outros sites
JorgitoDF 0 Denunciar post Postado Agosto 21, 2012 Sim mas eu quero fazer a validação em PHP e não em JS... Sim pode passar pelo servidor desde que antes de os dados serem gravados no banco de dados uma mensagem de erro seja impressa na tela do cadastro no formulário cadastro.html Tem como? Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Agosto 21, 2012 procure por ajax... ou da uma olhada no plugin jvalidate do jquery Compartilhar este post Link para o post Compartilhar em outros sites
Daniel_Moraes 11 Denunciar post Postado Agosto 21, 2012 O Thiago Belem tem um tutorial disso com um plugin do jquery: Jquery Validate Compartilhar este post Link para o post Compartilhar em outros sites
kennedy do Prado 5 Denunciar post Postado Agosto 22, 2012 Eu não aconselho você validar dados com JS, pois o usuário pode desativar o JS em seu navegador, você pode enviar os dados do formulário via JS para uma o um código PHP onde é feito a validação e retorna uma mensagem para o JS. Se o usuário desativar o JS no navegador o seu formulário não será enviado. Sobre o envio de dados do formulário via JS leia sobre "submeter formulário com Ajax ou Jquery, existem vários tópicos sobre o assunto. vou te dar uma ideia, a partir dela você pode melhorar ou adaptar para melhor utilizar. crie o arquivo para o formulário ele pode ser em PHP ou HTML.(aconselho PHP). ex: arquivo formUser.php <!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>Submeter Forms via JQuery</title> <!-- Baixe o arquivo do Jquery em http://jquery.com/ e renomeio para jquery.js salve no mesmo diretorio dos aquivos php se for usar outro diretorio não esqueça de mudar o 'src' --> <script type="text/javascript" src="jquery.js"></script> <!-- Metodo onde vai submeter o formulário utilizando jquery Se você ler sobre Ajax vai encontrar scripts que enviam todos os campos do forms de uma vez para ter iniciar o Jquery é da uma pouco mais de trabalho mais acho que é mais facil compreender OBS: caso você numca utilizou JQuery, uma maneira de trabalhar com forms é a utilização de Id dos campos, os ID's devem ser únicos e usar '#' antes do ID. --> <!--Incio da função em Jquery para submeter o forms --> <script type="text/javascript"> $(document).ready(function(){// ao carregor o arquivo vai carregar a função $("#enviar").click(function(){// ao click do botão enivar inicia a função 'repare que eu utilizei # mais ID do botão. var usuario = $("#usuario").val();//pega o valor do campo usuario e guarda em uma variavel. var login = $("#login").val();//pega o valor do campo login e guarda em uma variavel. var passwd = $("#passwd").val();//pega o valor do campo senha e guarda em uma variavel. $.post("cadUser.php",{usuario: usuario, login: login, passwd:passwd}, function(retorno){//aqui o Jquery envia dos dados via post para o arquivo cadUser.php onde acontecerá as validações, após as validações o arquivo retornará uma mensagem de erro ou ok. beforeSend:$("#retorno").html(retorno);//a o Jquery vai receber a resposta e escreve-lá na div retorno. }); }); }); </script> <!-- fim da função --> </head> <body> <h3>Cadastro de Usuário</h3> <!-- formulario de cadastro de usuario, como a questão aqui não e layout não vou utilizar CSS para melhorar o visual do forms. --> <div id="forms"> <fieldset> <label for="usuario">Usuário</label> <input type="text" id="usuario" /> <br /> <label for="login">Login</label> <input type="text" id="login" /> <br /> <label for="passwd">Senha</label> <input type="password" id="passwd" /> <br /><br /> <input type="button" value="Enviar" id="enviar" /> </fieldset> </div> <br /> <br /> <div id="retorno"> </div> </body> </html> vamos criar o arquivo cadUser.php que receberá os dados do formulário. para iniciar um teste crie o arquivo com o seguinte script. <?PHP print_r($_POST); ?> ao executar o formulário e enviar é para retornar uma array contendo os dados do seu formulário. Sobre a validação de dados se você receber os dados corretamente no arquivo cadUser.php tem varias maneiras de você validar os dados na minha opinião é você ler sobre PHP Orientado a Objetos pois fica facil a reutilização para validar formulários, porem se você não estiver familiarizado com o PHP OO, aperfeiçoe a logica abaixo. arquivo cadUser.php <?PHP //inicio verifica se existe dados post if(isset($_POST)){ $validar = TRUE;// se todos os campo passar na validação. //verifica se existe campo usuario if(isset($_POST['usuario'])){ //Vamos ao exemplo de validação $usuario = $_POST['usuario']; //validar se o campo é null if($usuario == NULL){ $erro[] = 'o campo usuario é obrigatorio';//Array que recebe a mensagem de erro $validar = FALSE;//se o campo for num não passou a validação. } } if(isset($_POST['login'])){ //Vamos ao exemplo de validação $usuario = $_POST['login']; //validar se o campo é null if($usuario == NULL){ $erro[] = 'o campo login é obrigatorio';//Array que recebe a mensagem de erro $validar = FALSE;//se o campo for num não passou a validação. } } //Faça a validações dos outros campos //fim das validação if($validar){// Este if vai verificar se é verdadeiro ou falso //se for verdadeiro é todos os campo passaram na validação dessa para camada de banco de dados //Aqui o seu SQL } else{// se falhar alguma validação foreach ($erro as $erroMsn){ $msn.=$erroMsn.'<br />'; } echo $msn; } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
JorgitoDF 0 Denunciar post Postado Agosto 22, 2012 Caro Kennedy do Prado, Ainda não estou tanto familiarizado com jQUERY e Ajax mas noteo que não há tanto mistério no seu código de sugestão, vou implemetar hoje mais tarde depois eu volto aqui para comentar algo se for o caso, muito obrigado....... Compartilhar este post Link para o post Compartilhar em outros sites
JorgitoDF 0 Denunciar post Postado Agosto 22, 2012 Prezado Kennedy do Prado, Seu código ficou show, adapetei ao meu das validações e tudo deu certo, porém só mais uma coisa... A função abaixo retorna um array com todos os dados, mas caso eu queira que retorne apenas o dados referente a um único campo que deu erro na validação para q apenas ele seja impresso na div do formulário pois o dado que passou na validação não tem a necessidade de ser impresso.... function(retorno){ beforeSend:$("#retorno").html(retorno ? Compartilhar este post Link para o post Compartilhar em outros sites
hufersil 145 Denunciar post Postado Agosto 22, 2012 Particularmente, gosto de separar as regras de validação em classes, assim, consigo um reaproveitamento muito maior de códigos, além de poder separar melhor a lógica. O que faço, é criar um executor de uma lista de regras de validação. Ou seja: Crio as regras Crio o executor Crio a instancia do objeto que será validado Populo com os dados vindos do form Efetuo a validação Como está tudo bem separado, consigo usar cada um de forma isolada, e reaproveitar em várias partes. Um exemplo do que estou falando você pode ver funcionando aqui e baixar os fontes aqui (PHP 5.3+) Trecho onde adiciono e executo a validação neste exemplo: if(!empty($_POST)){ // including files include 'bean/User.php'; include 'validation/Executor.php'; include 'validation/rules/RequiredEmail.php'; include 'validation/rules/RequiredString.php'; // 1 - creating a new User instance and filling it with proper values $bean = new bean\User(); $bean->setName($_POST['name']); $bean->setEmail($_POST['email']); $bean->setPassword($_POST['password']); // 2 - creating an executor and adding some rules $ruleExec = new validation\Executor(); $ruleExec->addRule(new validation\rules\RequiredString('name','Supply your name')); $ruleExec->addRule(new validation\rules\RequiredString('password','Supply your password')); $ruleExec->addRule(new validation\rules\RequiredString('password','Your password must have between 4 and 8 chars', 4, 8)); $ruleExec->addRule(new validation\rules\RequiredEmail('email','Supply a valid e-mail address')); // 3 - execute the validation $errors = $ruleExec->validate($bean); if(empty($errors)){ // no errors, yeah! // do whatever you want, like save in a database :D } } Como pode ver, claro e objetivo! @braços e fique com Deus! Compartilhar este post Link para o post Compartilhar em outros sites
kennedy do Prado 5 Denunciar post Postado Agosto 22, 2012 Cara no script que eu postei anteriormente retorna mensagem apenas dos campos que não passaram na validação. Se você postar seu código posso de dar uma dica ver o que pose ser melhorado isso se for necessário. Compartilhar este post Link para o post Compartilhar em outros sites
JorgitoDF 0 Denunciar post Postado Agosto 22, 2012 Kennedy Tai o meu código de validação: Quero retornar apenas os erros, caso tudo passe na validação os dados serão gravados no bando de dados. <?php if (!empty($_POST)) { if (isset($_POST['uasg'])){ if (empty($_POST['uasg'])) { echo "O campo UASG está vazio!"; echo "<br/>"; } if (!preg_match("/^[0-9]+$/",$_POST['uasg']) && $_POST['uasg'] == !"" ) { echo "O campo UASG só aceita números! <br>"; echo "<br/>"; } else { $uasg = $_POST['uasg']; echo "<br/>"; } } else { echo "O campo 'uasg' não existe na variável $_POST"; } if (isset($_POST['cnpj'])){ if (empty($_POST['cnpj'])) { echo "O campo CNPJ está vazio! <br/>"; echo "<br/>"; } if (!preg_match("/^[0-9]+$/",$_POST['cnpj']) && $_POST['cnpj'] == !"" ) { echo "O campo CNPJ só aceita números! <br>"; echo "<br/>"; } else { $cnpj = $_POST['cnpj']; echo "<br/>"; } } else { echo "O campo 'cnpj' não existe na variável $_POST"; } } else { echo "Não houve submit no formulário"; } if ($uasg && $cnpj == true){ include("conexao.php"); $sql = "INSERT INTO cliente2 (uasg, cnpj) VALUES ('$uasg','$cnpj')"; $query = mysql_query($sql) or die ("Houve um erro na gravação dos dados" . mysql_error()); print "Dados gravados com sucesso"; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Jacinto 74 Denunciar post Postado Agosto 23, 2012 Tipo, se tivermenos de 5 letras: $nome = $_POST['nome']; if(strlen($nome) < 5){ echo "O nome precisa conter 5 letras ou mais."; } Compartilhar este post Link para o post Compartilhar em outros sites
kennedy do Prado 5 Denunciar post Postado Agosto 23, 2012 Bom fiz algumas alterações, quanto a validação de CNPJ utilizei uma classe que eu já tenho pronta não tente entender como ela valida funciona mais sim como você pode reutiliza a qualquer momento para validar o CNPJ isso é a base de orientação objeto a reutilização do código ao invés de copiar e colar toda vez que você precisa utiliza-lo, bom mais vamos aos códigos arquivo formulario.php <!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>Submeter Forms via JQuery</title> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#enviar").click(function(){ $(".msgError").html(""); $(".msgError").css("display","none"); var uasg = $("#uasg").val(); var cnpj = $("#cnpj").val(); $.post("cadastro.php",{uasg: uasg, cnpj: cnpj}, function(retorno){ beforeSend:$("#retorno").html(retorno); }); }); }); </script> <style type="text/css"> .msgError{ display:none; } </style> </head> <body> <h3>Cadastro</h3> <div id="forms"> <fieldset> <label for="uasg">UASG</label> <input type="text" id="uasg" /> <span class="msgError" id="uasgError">erroUasg</span> <br /> <label for="cnpj">CNPJ</label> <input type="text" id="cnpj" /> <span class="msgError" id="cnpjError">erroCnpj</span> <br /><br /> <input type="button" value="Enviar" id="enviar" /> </fieldset> </div> <br /> <br /> <div id="retorno"> </div> </body> </html> Arquivo cadastro.php <?PHP require_once 'ValCnpj.php'; if(isset($_POST)){ $status = TRUE; //Validando UASG if(isset($_POST['uasg'])){ $uasg = $_POST['uasg']; if(empty($uasg)){ $status = FALSE; echo ' <script type="text/javascript"> $(document).ready(function() { $("#uasgError").html("* Campo obrigatório."); $("#uasgError").css("display","block"); }); </script> '; } elseif(!is_numeric($uasg)){ $status = FALSE; echo ' <script type="text/javascript"> $(document).ready(function() { $("#uasgError").html("* O campo UASG só aceita números!."); $("#uasgError").css("display","block"); }); </script> '; } elseif(strlen($uasg)!=5){ $status = FALSE; echo ' <script type="text/javascript"> $(document).ready(function() { $("#uasgError").html("* O campo UASG deve ter 5 números!."); $("#uasgError").css("display","block"); }); </script> '; } } //Validando CNPJ if(isset($_POST['cnpj'])){ $cnpj = $_POST['cnpj']; if(empty($cnpj)){ $status = FALSE; echo ' <script type="text/javascript"> $(document).ready(function() { $("#cnpjError").html("* Campo obrigatório."); $("#cnpjError").css("display","block"); }); </script> '; } else{ $valCnpj = new ValCnpj($cnpj); if(!$valCnpj->status){ $status = FALSE; echo ' <script type="text/javascript"> $(document).ready(function() { $("#cnpjError").html("* Número de CNPJ inválido!"); $("#cnpjError").css("display","block"); }); </script> '; } } } //Verifica se os dados passaram na validação if($status){ //Faça um SQL de consulta e verifique se o CNPJ ou UASG já não estão cadastrado. //Exemplo: //Vamos considerar que voce fez a consulta e já exite os CNPJ e UASG $sqlUasg = '12345'; $sqlCnpj = '63410751000104'; //faça um teste no formulario com esses dados acima if(($sqlUasg == $uasg)||($sqlCnpj == $cnpj)){ echo 'UASG ou CNPJ já cadastrado'; } //Se não existir o CNPJ ou UASG else{ //realiza o insert //codigo SQL //Altere a variavel "$sqlInsert" entre TRUE e FALSE e veja o resultado no forms $sqlInsert = TRUE; if($sqlInsert){ echo 'Registro inserido com sucesso!'; } //Aqui de se SQL falhar else{ echo 'Não foi possivel inserir o registro'; } } } } ?> Arquivo classe ValCnpj.php <?php class ValCnpj{ //Variaveis de validação para validações public $status; //Variaveis para validação CNPJ private $cnpj, $i, $rev_cnpj, $multiplier, $multiply, $sum, $rest, $dv1, $dv2, $sub_cnpj, $fake, $check_fake; //Metodo valida CNPJ function __construct($cnpj){ $this->cnpj = $cnpj; $this->cnpj = str_replace("/","", str_replace("-","",str_replace(".","",$this->cnpj))); $this->cnpj = trim($this->cnpj); if(empty($this->cnpj) or strlen($this->cnpj)!=14){ $this->status = FALSE; } else{ for($this->i = 0; $this->i <= 9; $this->i++) { $this->fake = str_pad("", 14, $this->i); if($this->cnpj === $this->fake){ $this->check_fake = 1; } } if($this->check_fake){ $this->status = FALSE; } else{ $this->rev_cnpj = strrev(substr($this->cnpj, 0, 12)); for($this->i = 0; $this->i <= 11; $this->i++) { $this->i == 0 ? $this->multiplier = 2 : $this->multiplier; $this->i == 8 ? $this->multiplier = 2 : $this->multiplier; $this->multiply = ($this->rev_cnpj[$this->i] * $this->multiplier); $this->sum = $this->sum + $this->multiply; $this->multiplier++; } $this->rest = $this->sum % 11; if($this->rest == 0 || $this->rest == 1){ $this->dv1 = 0; } else{ $this->dv1 = 11 - $this->rest; } $this->sub_cnpj = substr($this->cnpj, 0, 12); $this->rev_cnpj = strrev($this->sub_cnpj.$this->dv1); unset($this->sum); for($this->i = 0; $this->i <= 12; $this->i++){ $this->i == 0 ? $this->multiplier = 2 : $this->multiplier; $this->i == 8 ? $this->multiplier = 2 : $this->multiplier; $this->multiply = ($this->rev_cnpj[$this->i] * $this->multiplier); $this->sum = $this->sum + $this->multiply; $this->multiplier++; } $this->rest = $this->sum % 11; if($this->rest == 0 || $this->rest == 1){ $this->dv2 = 0; } else{ $this->dv2 = 11 - $this->rest; } if($this->dv1 == $this->cnpj[12] && $this->dv2 == $this->cnpj[13]){ $this->status = TRUE; } else{ $this->status = FALSE; } } } return $this; } } ?> Teste e qualquer duvida pergunte. Compartilhar este post Link para o post Compartilhar em outros sites
JorgitoDF 0 Denunciar post Postado Agosto 24, 2012 Caro Kennedy quero muito te agradecer pela ajuda, resolveu meu problema, sou iniciante em PHP, cada dia aprendendo mais, valeu mesmo cara. Kennedy, gostaria de tirar mais uma dúvida com você, aproveitando sua boa vontade e disposição.... Estou tentado (seguindo a lógica do seu código) verificar se campo de RADIO foi selecionado no formulário... Veja abaixo no arquivo cadastro.php: if(isset($_POST)){ $status = TRUE; if(isset($_POST['tipo'] = "Governo")){ $gov = $_POST['tipo']; } else { echo ' <script type="text/javascript"> $(document).ready(function() { $("#tipoError").html("O campo GOVERNO não existe na variável $_POST!"); $("#tipoError").css("display","block"); }); </script> '; } No formulário esta assim: <label for="governo"> <input type="radio" id="tipo" value="Governo" /> Governo </label> A function está assim: $(document).ready(function(){ $("#Salvar").click(function(){ $(".msgError").html(""); $(".msgError").css("display","none"); var tipo = $("#tipo").val(); var uasg = $("#uasg").val(); var cnpj = $("#cnpj").val(); var razao = $("#razao").val(); $.post("Cadastro.php",{tipo: tipo, uasg: uasg, cnpj: cnpj}, function(retorno){ beforeSend:$("#retorno").html(retorno); }); }); }); Porém nada é executado nem quando o RADIO é selecionado nem sem estar selecionado... Pode me ajudar nessa também? Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
JorgitoDF 0 Denunciar post Postado Novembro 30, 2012 Caro Kennedy, depois de um tempo sumido estou aqui de volta, gostaria de uma ajuda sua mais uma vez se possível... Lembra deste código abaixo que você passou para mim há alguns meses atrás? Gostaria de saber como faço para recuperar um valor passar por uma combobox (select) neste código ai abaixo.... Agradeço.. <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Submeter Forms via JQuery</title> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#enviar").click(function(){ $(".msgError").html(""); $(".msgError").css("display","none"); var uasg = $("#uasg").val(); var cnpj = $("#cnpj").val(); $.post("cadastro.php",{uasg: uasg, cnpj: cnpj}, function(retorno){ beforeSend:$("#retorno").html(retorno); }); }); }); </script> <style type="text/css"> .msgError{ display:none; } </style> </head> Compartilhar este post Link para o post Compartilhar em outros sites
jpraminelli 3 Denunciar post Postado Novembro 30, 2012 você pode usufruir de sessão, na pagina do form (cadastro.php) você teria algo assim: session_start; . . <form ....> . . . <input type="text" value="" name="nome" id="nome" /><span><?php echo $_SESSION['nome'];?></span> . . . </form> e na validação (validacao.php) <?php session_start; if($_POST){ //campo nome vazio if($_POST['nome']){ $_SESSION['nome'] = 'Preencha o campo nome'; header('Location: cadastro.php'); //direciona o usuario para o formulario } } Compartilhar este post Link para o post Compartilhar em outros sites
jpraminelli 3 Denunciar post Postado Novembro 30, 2012 você pode usufruir de sessão, na pagina do form (cadastro.php) você teria algo assim: session_start; . . <form ....> . . . <input type="text" value="" name="nome" id="nome" /><span><?php echo $_SESSION['nome'];?></span> . . . </form> e na validação (validacao.php) <?php session_start; if($_POST){ //campo nome vazio if($_POST['nome'] == ''){ $_SESSION['nome'] = 'Preencha o campo nome'; header('Location: cadastro.php'); //direciona o usuario para o formulario } } Compartilhar este post Link para o post Compartilhar em outros sites
JorgitoDF 0 Denunciar post Postado Novembro 30, 2012 Bom fiz algumas alterações, quanto a validação de CNPJ utilizei uma classe que eu já tenho pronta não tente entender como ela valida funciona mais sim como você pode reutiliza a qualquer momento para validar o CNPJ isso é a base de orientação objeto a reutilização do código ao invés de copiar e colar toda vez que você precisa utiliza-lo, bom mais vamos aos códigos arquivo formulario.php <!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>Submeter Forms via JQuery</title> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#enviar").click(function(){ $(".msgError").html(""); $(".msgError").css("display","none"); var uasg = $("#uasg").val(); var cnpj = $("#cnpj").val(); $.post("cadastro.php",{uasg: uasg, cnpj: cnpj}, function(retorno){ beforeSend:$("#retorno").html(retorno); }); }); }); </script> <style type="text/css"> .msgError{ display:none; } </style> </head> <body> <h3>Cadastro</h3> <div id="forms"> <fieldset> <label for="uasg">UASG</label> <input type="text" id="uasg" /> <span class="msgError" id="uasgError">erroUasg</span> <br /> <label for="cnpj">CNPJ</label> <input type="text" id="cnpj" /> <span class="msgError" id="cnpjError">erroCnpj</span> <br /><br /> <input type="button" value="Enviar" id="enviar" /> </fieldset> </div> <br /> <br /> <div id="retorno"> </div> </body> </html> Arquivo cadastro.php <?PHP require_once 'ValCnpj.php'; if(isset($_POST)){ $status = TRUE; //Validando UASG if(isset($_POST['uasg'])){ $uasg = $_POST['uasg']; if(empty($uasg)){ $status = FALSE; echo ' <script type="text/javascript"> $(document).ready(function() { $("#uasgError").html("* Campo obrigatório."); $("#uasgError").css("display","block"); }); </script> '; } elseif(!is_numeric($uasg)){ $status = FALSE; echo ' <script type="text/javascript"> $(document).ready(function() { $("#uasgError").html("* O campo UASG só aceita números!."); $("#uasgError").css("display","block"); }); </script> '; } elseif(strlen($uasg)!=5){ $status = FALSE; echo ' <script type="text/javascript"> $(document).ready(function() { $("#uasgError").html("* O campo UASG deve ter 5 números!."); $("#uasgError").css("display","block"); }); </script> '; } } //Validando CNPJ if(isset($_POST['cnpj'])){ $cnpj = $_POST['cnpj']; if(empty($cnpj)){ $status = FALSE; echo ' <script type="text/javascript"> $(document).ready(function() { $("#cnpjError").html("* Campo obrigatório."); $("#cnpjError").css("display","block"); }); </script> '; } else{ $valCnpj = new ValCnpj($cnpj); if(!$valCnpj->status){ $status = FALSE; echo ' <script type="text/javascript"> $(document).ready(function() { $("#cnpjError").html("* Número de CNPJ inválido!"); $("#cnpjError").css("display","block"); }); </script> '; } } } //Verifica se os dados passaram na validação if($status){ //Faça um SQL de consulta e verifique se o CNPJ ou UASG já não estão cadastrado. //Exemplo: //Vamos considerar que voce fez a consulta e já exite os CNPJ e UASG $sqlUasg = '12345'; $sqlCnpj = '63410751000104'; //faça um teste no formulario com esses dados acima if(($sqlUasg == $uasg)||($sqlCnpj == $cnpj)){ echo 'UASG ou CNPJ já cadastrado'; } //Se não existir o CNPJ ou UASG else{ //realiza o insert //codigo SQL //Altere a variavel "$sqlInsert" entre TRUE e FALSE e veja o resultado no forms $sqlInsert = TRUE; if($sqlInsert){ echo 'Registro inserido com sucesso!'; } //Aqui de se SQL falhar else{ echo 'Não foi possivel inserir o registro'; } } } } ?> Arquivo classe ValCnpj.php <?php class ValCnpj{ //Variaveis de validação para validações public $status; //Variaveis para validação CNPJ private $cnpj, $i, $rev_cnpj, $multiplier, $multiply, $sum, $rest, $dv1, $dv2, $sub_cnpj, $fake, $check_fake; //Metodo valida CNPJ function __construct($cnpj){ $this->cnpj = $cnpj; $this->cnpj = str_replace("/","", str_replace("-","",str_replace(".","",$this->cnpj))); $this->cnpj = trim($this->cnpj); if(empty($this->cnpj) or strlen($this->cnpj)!=14){ $this->status = FALSE; } else{ for($this->i = 0; $this->i <= 9; $this->i++) { $this->fake = str_pad("", 14, $this->i); if($this->cnpj === $this->fake){ $this->check_fake = 1; } } if($this->check_fake){ $this->status = FALSE; } else{ $this->rev_cnpj = strrev(substr($this->cnpj, 0, 12)); for($this->i = 0; $this->i <= 11; $this->i++) { $this->i == 0 ? $this->multiplier = 2 : $this->multiplier; $this->i == 8 ? $this->multiplier = 2 : $this->multiplier; $this->multiply = ($this->rev_cnpj[$this->i] * $this->multiplier); $this->sum = $this->sum + $this->multiply; $this->multiplier++; } $this->rest = $this->sum % 11; if($this->rest == 0 || $this->rest == 1){ $this->dv1 = 0; } else{ $this->dv1 = 11 - $this->rest; } $this->sub_cnpj = substr($this->cnpj, 0, 12); $this->rev_cnpj = strrev($this->sub_cnpj.$this->dv1); unset($this->sum); for($this->i = 0; $this->i <= 12; $this->i++){ $this->i == 0 ? $this->multiplier = 2 : $this->multiplier; $this->i == 8 ? $this->multiplier = 2 : $this->multiplier; $this->multiply = ($this->rev_cnpj[$this->i] * $this->multiplier); $this->sum = $this->sum + $this->multiply; $this->multiplier++; } $this->rest = $this->sum % 11; if($this->rest == 0 || $this->rest == 1){ $this->dv2 = 0; } else{ $this->dv2 = 11 - $this->rest; } if($this->dv1 == $this->cnpj[12] && $this->dv2 == $this->cnpj[13]){ $this->status = TRUE; } else{ $this->status = FALSE; } } } return $this; } } ?> Teste e qualquer duvida pergunte. Kennedy, Como eu faço para imprimir a mensagem 'Registro inserido com sucesso!'; no formulario_cadastro.php ? Tentei com $_SESSION porém não deu certo.... Grato Compartilhar este post Link para o post Compartilhar em outros sites