2 :: validação Javascript irrita o usuário muito menos
Se for o caso, use as duas!
Mas eu acho que uma modelagem de dados bem feita dispensa a validação no PHP na maioria dos casos.
Posted 26/06/2008, 16:15
Posted 26/06/2008, 17:49
<?php
/* Se o CPF estiver no formato inválido vai aparecer aqui: */
if ($ver=="VerOk") {
if ($status) {
include "class/cad.php";
}
else {
echo "<div id=\"erros\">
<div style=\"background: #F4C400; padding: 3px; text-align:left;\">
<p>Ocorreram alguns problemas durante a tentativa de cadastro, os campos abaixo estão inválidos:</p></div>";
/* Verifica os outros campos do formulário */
if ($nome == "") { echo "* Nome completo <br />"; }
if ($email == "") { echo "* E-mail <br />"; }
if ($empresa == "") { echo "* Empresa <br />"; }
if ($telefone == "") {echo "* Telefone <br />";}
if ($endereco == "") {echo "* Endereço <br />";}
if ($numero == "") {echo "* Número <br />";}
if ($bairro == "") {echo "* Bairro <br />";}
if ($cidade == "") {echo "* Cidade <br />";}
if ($cep == "") {echo "* Cep <br />";}
if ($descricao == "") {echo "* Descrição da Empresa <br />";}
else { echo "O CPF: $cpf É INVÁLIDO!"; }
} }
echo "</div>";
?></td>Posted 26/06/2008, 18:32
humm, agora entendi victorhb, essa seria a unica desvantagem de usar JS? e tpw, o modo padrão dos browser é o JAVA habilitado ou desabilitado?
Adrielso, adaptei teu codigo em meu site, e surgiu um problema tpw, se eu preencher o formulario todo, e o CPF estiver inválido, o formulário é completamente limpo, fazendo com que o usuário tenha que digitar todo o formulário novamente, teria como contornar isso? fazendo com q ele mostre o erro mais não apague o formulário? Obrigado a todos.... aguardo respostas se possivel....
OBS: estou esclarecendo todas minhas dúvidas em relação a isso graças a vcs.... vlw...
Posted 26/06/2008, 18:55
Posted 27/06/2008, 11:40
<html>
<head>
<title> Formulário Básico</title>
</head>
<body>
<form method="POST" action="insere.php">
Nome: <input type="text" name="nome" title="Digite seu nome" size="15">
E-mail: <input type="text" name="email" title="Digite seu e-mail" size="15">
CPF: <input type="text" name="cpf" title="Digite seu CPF">
<input type="submit" value="Enviar" name="BtnEnviar">
</form>
</body>
</html>
<?
if ($msg==1){
echo "<script>alert('Cadastro efetuado com sucesso.')</script>";
}
?><?php
include "funcoes.php"; //Inclui pagina com funções.
if (empty($nome) OR strlen($nome)<5) {
echo "<script>alert('Digite o nome corretamente!')</script>";
echo "<script>java script:history.back(-1);</script>";
}
elseif(empty($email) OR strlen($email)<8){
echo "<script>alert('Digite o E-mail corretamente!')</script>";
echo "<script>java script:history.back(-1);</script>";
}
elseif (!verificacpf($cpf) OR empty($cpf)){
echo "<script>alert('O CPF digitado é inválido!')</script>";
echo "<script>java script:history.back(-1);</script>";
}
else {
$sql = mysql_query("INSERT INTO seudb (nome, email, cpf) VALUES ('$nome','$email','$cpf')");
header("Location: cadastro.php?msg=1");
}
?><?php
conexaobd(); //Inicia a conexão com banco de dados.
function conexaobd(){
$conexao = mysql_connect("seuservidor","seuusuario","suasenha");
$bd = mysql_select_db("seubd");
}
function verificacpf($cpf){
//VERIFICA SE O QUE FOI INFORMADO É NÚMERO SE NÃO FOR SO NÚMEROS SÃO RETIRADOS OS PONTOS E DIGITOS.
if(!is_numeric($cpf)) {
$cpf = str_replace(".","",$cpf);
$cpf = str_replace("-","",$cpf);
}
//VERIFICA SE O VALOR DE $cpf ESTÁ VAZIO OU NÃO NÚMERICO
if(!is_numeric($cpf) OR empty($cpf))
{
return 0; //SE VERDADEIRO ATRIBUI O VALOR false À VARIAVEL $status.
}
//VERIFICA SE O CPF NÃO SÃO NÚMEROS INVÁLIDOS. EX: 22222222222
if( ($cpf == '11111111111') || ($cpf == '22222222222') ||
($cpf == '33333333333') || ($cpf == '44444444444') ||
($cpf == '55555555555') || ($cpf == '66666666666') ||
($cpf == '77777777777') || ($cpf == '88888888888') ||
($cpf == '99999999999') || ($cpf == '00000000000') ) {
return 0; //SE O IF FOR VERDADEIRO ATRIBUI O VALOR false A VÁRIAVEL $status
}
else {
//PEGA O DIGITO VERIFIACADOR
$dv_informado = substr($cpf, 9,2);
for($i=0; $i<=8; $i++) {
$digito[$i] = substr($cpf, $i,1);
}
//CALCULA O VALOR DO 10º DIGITO DE VERIFICAÇÂO
$posicao = 10;
$soma = 0;
for($i=0; $i<=8; $i++) {
$soma = $soma + $digito[$i] * $posicao;
$posicao = $posicao - 1;
}
$digito[9] = $soma % 11;
if($digito[9] < 2) {
$digito[9] = 0;
}
else {
$digito[9] = 11 - $digito[9];
}
//CALCULA O VALOR DO 11º DIGITO DE VERIFICAÇÃO
$posicao = 11;
$soma = 0;
for ($i=0; $i<=9; $i++) {
$soma = $soma + $digito[$i] * $posicao;
$posicao = $posicao - 1;
}
$digito[10] = $soma % 11;
if ($digito[10] < 2) {
$digito[10] = 0;
}
else {
$digito[10] = 11 - $digito[10];
}
//VERIFICA SE O DV CALCULADO É IGUAL AO INFORMADO
$dv = $digito[9] * 10 + $digito[10];
if ($dv != $dv_informado) {
return 0; //SE O DIGITO CALCULADO FOR DIFERENTE DO INFORMADO false É ATRIBUÍDO À $status.
}
else
return 1; //SIGNIFICA QUE O CPF É VALIDO.
}
}
?><?php
/* Se o CPF estiver no formato inválido vai aparecer aqui: */
if ($ver=="VerOk") {
if ($status) {
include "class/cad.php";
}
else {
echo "<div id=\"erros\">
<div style=\"background: #F4C400; padding: 3px; text-align:left;\">
<p>Ocorreram alguns problemas durante a tentativa de cadastro, os campos abaixo estão inválidos:</p></div>";
/* Verifica os outros campos do formulário */
if ($nome == "") { echo "* Nome completo <br />"; }
elseif ($email == "") { echo "* E-mail <br />"; }
elseif ($empresa == "") { echo "* Empresa <br />"; }
elseif ($telefone == "") {echo "* Telefone <br />";}
elseif ($endereco == "") {echo "* Endereço <br />";}
elseif ($numero == "") {echo "* Número <br />";}
elseif ($bairro == "") {echo "* Bairro <br />";}
elseif ($cidade == "") {echo "* Cidade <br />";}
elseif ($cep == "") {echo "* Cep <br />";}
elseif ($descricao == "") {echo "* Descrição da Empresa <br />";}
else { echo "O CPF: $cpf É INVÁLIDO!"; }
} }
echo "</div>";
?></td>Edição feita por: Adrielso P. Teodoro, 27/06/2008, 15:51.
Posted 27/06/2008, 12:31
echo "<script>java script:history.back(-1);</script>";
<td align="right">* Nome completo:</td> <td colspan="3"><input class="inputs" type="text" name="nome" id="nome" value="<?php echo $nome; ?>" /></td>
Posted 27/06/2008, 13:01
Adrielso, mais no caso se eu usar o codigo
echo "<script>java script:history.back(-1);</script>";
se o usuario desabilitar o java, essa funcao nao ira funcionar correto? fazendo com que o formulario seja limpo novamente?
Adrielso, consegui aqui fazendo da seguinte maneira e sem usar JS, olha so como:<td align="right">* Nome completo:</td> <td colspan="3"><input class="inputs" type="text" name="nome" id="nome" value="<?php echo $nome; ?>" /></td>, agora o unico problema que falta é o seguinte:
2º - Se eu preencher tudo corretamente inclusive o CPF, so que eu esquecer algum campo em branco por exemplo CIDADE, ele acusa que a CIDADE esta com erro mais também acusa que o CPF esta invalido, mesmo que eu tenha preenchido o CPF corretamente.
brigadaooo...
Posted 27/06/2008, 17:26
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)