alesirj 0 Denunciar post Postado Janeiro 5, 2010 Pessoal, bom dia. Estou tentando criar uma validação via PHP, não usando Java Script para validar uma data. Não deixar uma pessoa cadastrar como data de nascimento uma data maior que a data atual. Tentei os seguintes códigos, mas não funciona. Campo do arquivo dados_iniciais.php: <td><label for="dt_nascimento"><input name="dt_nascimento" id="dt_nascimento" type="text" maxlength="10" size="10" value="<?=ValidaData($cr_dt_nascimento,$dt_nascimento);?>" ></label></td> Função ValidaData do arquivo funcoes.php function ValidaData($theValue,$name){ $data_atual=date("d/m/Y"); if($theValue>$data_atual){ echo "<script language='javascript'> window.alert('Data maior que a data atual!'); document.getDocumentById('".$name."').focus(); </script>"; }else{ return $theValue; } } Abaixo os códigos completos: dados_iniciais.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" lang="pt-br"> <head> <title>Procurando Minha Família - Dados Iniciais</title> <meta http-equiv="Content-Type" content="text/html"; charset="iso-8859-1"> <script language="javascript"> <!--A função abaixo volta uma página--> function SubmitVoltar(cr_id_num) {crianca_id=cr_id_num; document.f.action='alterar_crianca.php?id_crianca'; document.f.method='post'; document.f.submit(); } <!--A função abaixo realiza a validação dos campos do formulário "inicial" --> function enableFields() {//var totalFields = document.f.elements.length; if(document.f.valida_data.value==1){ //for (i = 1; i < totalFields; i++) { document.f.dt_nascimento.disabled = false; document.f.idade.disabled = false; document.f.idade_pres.disabled = true; }else{ document.f.dt_nascimento.disabled = true; document.f.idade.disabled = true; document.f.idade_pres.disabled = false; } } function validaform() { var validadesaparecido= /^[a-z A-Z]{2,50}$/; var vdatavalida=/^\d{1,2}\/\d{1,2}\/\d{1,4}$/; var vdatanasc=/^\d{1,2}\/\d{1,2}\/\d{1,4}$/; if(document.f.desaparecido.value.search(validadesaparecido)==-1){ alert("Digite somente caractere alfabético!!!"); document.f.desaparecido.focus(); } else if(document.f.sexo.selectedIndex==0){ alert("Entre com um sexo válido!!!"); document.f.sexo.focus(); } else if(document.f.valida_data.selectedIndex==0){ alert("Escolha entre as duas opções"); document.f.valida_data.focus(); } else if((document.f.valida_data.selectedIndex==2)&& (document.f.idade_pres.value=="")){ alert("Entre com uma idade presumida"); document.f.dt_nascimento.value=""; document.f.idade_pres.focus(); } else if((document.f.valida_data.selectedIndex==1)&&(document.f.dt_nascimento.value.search(vdatanasc)==-1)){ alert("Informe tipo da data de nascimento"); document.f.dt_nascimento.focus(); document.f.idade_pres.value=""; } /*else if(document.f.data_valida.value.search(vdatavalida)=-1){ alert("Entre com uma data válida no formato dd/mm/aaaa"); f.data_valida.focus(); }*/ else{ SubmitAlteracao(); } function SubmitAlteracao() { document.f.action='update_crianca.php'; document.f.method='post'; document.f.submit(); } } </script> <!-- link para a folha de estilo--> <link href="../css/epg.css" rel="stylesheet" type="text/css"> </head> <!--Seta o foco para o campo Nome do desaparecido--> <body onLoad="javascript:document.f.desaparecido.focus(); javascipt:enableFields();"> <?php //chama a tela de autenticação include "../includes/autenticarlogin.php"; include "../conexao/conexao_total.php"; include '../autentica/crianca.php'; include "../funcoes/funcoes.php"; //setando as variáveis $data_login=date("Y-m-d H:i:s"); $id_oper = $_SESSION['CR_COD_OPERADOR_LOG']; $id = $_POST['crianca_id']; //consultando a tabela crianca $result = "SELECT CR_NOME_CRIANCA, CR_NOME_SUGERIDO, CR_APELIDO, CR_SEXO, CR_VALIDA_DATA, CR_DT_NASCIMENTO, CR_IDADE_PRESUMIVEL, CR_NUM_IDENTIDADE, CR_ORGAO_EMISSOR FROM crianca WHERE CR_ID_NUM = '$id'"; $query = mysql_query($result) or die('Erro ao consultar no banco de dados !!!'); $lista=mysql_fetch_assoc($query); $cr_nome_crianca=$lista["CR_NOME_CRIANCA"]; $cr_nome_sugerido=$lista["CR_NOME_SUGERIDO"]; $cr_apelido=$lista["CR_APELIDO"]; $cr_sexo=$lista["CR_SEXO"]; $cr_valida_data=$lista["CR_VALIDA_DATA"]; $cr_dt_nascimento=$lista['CR_DT_NASCIMENTO']; $cr_idade_presumivel=$lista["CR_IDADE_PRESUMIVEL"]; $cr_num_identidade=$lista["CR_NUM_IDENTIDADE"]; $cr_orgao_emissor=$lista["CR_ORGAO_EMISSOR"]; ?> <form name="f" method="post"> <table align="center" width="70%" border="0" cellspacing="1" cellpadding="0" class="texto"> <tr><td colspan="2"><br /></td></tr> <tr> <td colspan="2" align="center" class="texto"><strong>Dados Iniciais</strong></td> </tr> <tr><td><br /></td></tr> <tr> <td><label for="desaparecido">Nome Criança / Adolescente Dedaparecido</label></td> </tr> <tr> <td><input id="desaparecido" name="desaparecido" type="text" value="<?=$cr_nome_crianca?>" size="50" maxlength="45"> </td> </tr> <tr> <td><label for="nome_sug">Nome Sugerido</label></td> </tr> <td><input type="text" id="nome_sug" name="nome_sug" value="<?=$cr_nome_sugerido?>" size="50" maxlength="45"> </td> </tr> <tr> <td><label for="apelido">Apelido</label></td> <td><label for="sexo">Sexo</label></td> </tr> <tr><td><input type="text" name="apelido" id="apelido" value="<?=$cr_apelido?>" size="45" maxlength="40"></td> <td><select name="sexo" id="sexo"> <?php if($cr_sexo==NULL) { print("<option value='' selected>Escolha uma opção</option> <option value='M'>Masculino</option> <option value='F'>Feminino</option>"); } else if($cr_sexo=="M"){ print("<option value=''>Escolha uma opção</option> <option value='M'selected>Masculino</option> <option value='F'>Feminino</option>"); } else{ print("<option value=''>Escolha uma opção</option> <option value='M'>Masculino</option> <option value='F' selected>Feminino</option>"); } ?> </select></td> </tr> <tr> <td>Nascimento</td> <td><label for="valida_data">Data de Nascimento</label></td> <td><label for="idade">Idade</label></td> </tr> <td><select name="valida_data" id="valida_data" onchange="enableFields();"> <?php if($cr_valida_data==NULL) { print("<option value='0' selected>Escolha uma opção</option> <option value=1>Data Valida</option> <option value=2>Data Presumida</option>"); } else if($cr_valida_data==1) { print("<option value='0'>Escolha uma opção</option> <option value=1 selected>Data Valida</option> <option value=2>Data Presumida</option>"); } else{ print("<option value='0'>Escolha uma opção</option> <option value=1>Data Valida</option> <option value=2 selected>Data Presumida</option>"); } ?> </select> </td> <?php $dt_nascimento="dt_nascimento";?> <td><label for="dt_nascimento"><input name="dt_nascimento" id="dt_nascimento" type="text" maxlength="10" size="10" value="<?=ValidaData($cr_dt_nascimento,$dt_nascimento);?>" ></label></td> <?php function calc_idade( $cr_dt_nascimento ){ $data_nasc=explode("/",$cr_dt_nascimento); $data=date("d/m/Y"); $data=explode("/",$data); $anos=$data[2]-$data_nasc[2]; if($cr_dt_nascimento==""){ $anos=""; return $anos; break;} if ($data_nasc[1] > $data[1]) { return $anos-1; } if ($data_nasc[1] == $data[1]) { if ($data_nasc[0] <= $data[0]) { return $anos; break; } else { return $anos-1; break; } } if ($data_nasc[1] < $data[1]) { return $anos; } } ?> <?php $anos = calc_idade($cr_dt_nascimento);?> <td><input type="text" name="idade" value="<? echo $anos;?>" size="5" maxlength="2" readonly="true"></td> </tr> <tr> <td><label for="idade_pres">Idade Presumida</label></td> </tr> <tr> <td><input name="idade_pres" type="text" value="<?=$cr_idade_presumivel?>" size="5" maxlength="2"></td> </tr> <tr> <td><label for="identidade">Nº Identidade</label></td> <td><label for="orgao_em">Órgão Emissor</label></td> </tr> <tr> <td><input type="text" name="identidade" value="<? echo $cr_num_identidade; ?>" /></td> <td><input type="text" name="orgao_em" value="<?=$cr_orgao_emissor?>"></td> </tr> </table> <table align="center" width="80%" border="0" cellspacing="1" cellpadding="0" class="text"> <tr><td></td></tr> <tr> <td colspan="2" align="center"> <input name="update" type="button" class="bt" onClick="javascript:validaform()" value="Atualizar"> <input name="volta" type="button" class="bt" onclick="javascript:SubmitVoltar(<? echo $id; ?>)" value=" Voltar" /> <input type="hidden" name="id_crianca" value="<? echo $id; ?>" /> </td> </tr> <tr> <td colspan="2" align="center"> </td> </tr> </table> <p> </p> </form> <? include '../includes/rodape.html'; ?> </body> </html> funcoes.php <?php function FormataDataAmericana($theValue) { $fdia = substr($theValue,0,2); $fmes = substr($theValue,3,2); $fano = substr($theValue,6,4); return $fano."/".$fmes."/".$fdia; } // para trabalhar com o calendar ------ function FormataDataBrasil($theValue) { $fano = substr($theValue,0,4); $fmes = substr($theValue,5,2); $fdia = substr($theValue,8,2); return $fdia."-".$fmes."-".$fano; } //------------------------------------- function FormataDataBrasil2($theValue) { $fano = substr($theValue,0,4); $fmes = substr($theValue,5,2); $fdia = substr($theValue,8,2); return $fdia."/".$fmes."/".$fano; } function FormataDataMysql($theValue) { $fdia = substr($theValue,0,2); $fmes = substr($theValue,3,2); $fano = substr($theValue,6,4); $data_con=array($fano,$fmes,$fdia); $data=implode("-",$data_con); return $data; } //---------------------------------- function FormataCPF($theValue) { $f1 = substr($theValue,0,3); $f2 = substr($theValue,3,3); $f3 = substr($theValue,6,3); $f4 = substr($theValue,9,2); return $f1.".".$f2.".".$f3."-".$f4; } function FormataCEP($theValue) { $f1 = substr($theValue,0,5); $f2 = substr($theValue,5,3); return $f1."-".$f2; } function FormataNumeroAmericano($theValue) { return str_replace(array(","), ".", $theValue); } function FormataNumeroBrasil($theValue) { return str_replace(array("."), ",", $theValue); } function FormataProcesso($theValue) { $f1 = substr($theValue,0,4); $f2 = substr($theValue,4,3); $f3 = substr($theValue,8,6); $f4 = substr($theValue,14,1); return $f1.".".$f2.".".$f3."-".$f4; } function FormataIdentidade($theValue){ $f1=substr($theValue,0,2); $f2=substr($theValue,2,3); $f3=substr($theValue,5,3); $f4=substr($theValue,8); return $f1 .".".$f2.".".$f3."-".$f4; } function ValidaData($theValue,$name){ $data_atual=date("d/m/Y"); if($theValue>$data_atual){ echo "<script language='javascript'> window.alert('Data maior que a data atual!'); document.getDocumentById('".$name."').focus(); </script>"; }else{ return $theValue; } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Janeiro 5, 2010 <?php function ValidaData($theValue,$name){ $data_atual = date("d/m/Y"); $exp = explode("/", $data_atual); $expNasc = explode("/", $theValue); $data = mktime(0,0,0, $exp[1], $exp[0], $exp[2]); $dataNasc = mktime(0,0,0, $expNasc[1], $expNasc[0], $expNasc[2]); if($dataNasc > $data){ echo "<script language='javascript'> window.alert('Data maior que a data atual!'); document.getDocumentById('".$name."').focus(); </script>"; }else{ return $theNasc; } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 5, 2010 Veja também a função checkdate(), para validar datas: http://br.php.net/checkdate Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Janeiro 5, 2010 Ki lecau exta funcauum! Eu naum sabia ke tinha amico. Agola vô usá nus mels iscripitis. bigadu Beraldo! http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif Compartilhar este post Link para o post Compartilhar em outros sites
alesirj 0 Denunciar post Postado Janeiro 6, 2010 [Resolvido]Pessoal, muito obrigado a quem tentou me ajudar. Valeu pela ajuda. Consegui o que queria usando Java Script mesmo. O que fiz foi jogar a data atual recebido pela variável $data=date("d/m/Y");e jogá-la no campo hidden: <input type="hidden" name="data_atual" value="<?php echo $data; ?>"/>Depois foi só pegar o campo hidden e a o campo que recebe a data e colocá-la no script: function ComparaDatas() { var data1 = document.f.dtnascimento.value; var data2 = document.f.data_atual.value; var nova_data1 = parseInt(data1.split("/")[2].toString() + data1.split("/")[1].toString() + data1.split("/")[0].toString()); var nova_data2 = parseInt(data2.split("/")[2].toString() + data2.split("/")[1].toString() + data2.split("/")[0].toString()); if (nova_data1 > nova_data2) { alert("Data informada maior que a atual"); document.getElementById("dtnascimento").value=""; document.getElementById("dtnascimento").focus(); } } Compartilhar este post Link para o post Compartilhar em outros sites