Código Fonte:
<html>
<head>
<title>PHP</title>
</head>
<body>
<h1>Calcular a idade</h1>
<?php
// Função para limpar caracteres estranhos dos formulários.
function limpa_dados($dados) {
$dados = trim($dados);
$dados = stripslashes($dados);
$dados = htmlspecialchars($dados);
return $dados;
}
function dia($data) {
$indice=strpos($data,"-");
$dia=substr($data,0,$indice);
return $dia;
}
function mes($data) {
$indice=strpos($data,"-");
$retirar_dia=substr($data,$indice+1);
$indice=strpos($retirar_dia,"-");
$mes=substr($retirar_dia,0,$indice);
return $mes;
}
function ano($data) {
$indice=strpos(strrev($data),"-");
$rev_ano=substr(strrev($data),0,$indice);
return strrev($rev_ano);
}
function verificadata($data) {
return checkdate(mes($data), dia($data), ano($data));
}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nome = limpa_dados($_POST["var_nome"]);
$data = limpa_dados($_POST["var_data"]);
if (verificadata($data))
{
$hoje = date('d-m-Y');
$nasc_dia = dia($data);
$nasc_mes = mes($data);
$nasc_ano = ano($data);
$idade = ano($hoje)-$nasc_ano;
if ($nasc_mes > mes($hoje)) { // Ainda não passou o mês de nascimento
$idade -= 1;
}
elseif ($nasc_mes == mes($hoje)) { // Mês de nascimento, verificar o dia
if ($nasc_dia > dia($hoje)) {
$idade -= 1;
}
elseif ($nasc_dia == dia($hoje)) { // Dia de aniversário
$idade = $idade."<br> Parabéns hoje é o seu dia de aniversário!";
};
};
echo "<h2>Dados recebidos:</h2>";
echo "Caro $nome a sua idade é $idade<br>";
}
else
{ echo "Data não é válida";};
}
else {
?>
<form action="<?php echo htmlspecialchars($_SERVER[" PHP_SELF "]);?>" method="POST">
<label>Qual o seu nome:</label><br>
<input type="text" name="var_nome"><br>
<label>Qual a sua data de nascimento:</label><br>
<input type="text" name="var_data"><br>
<input type="submit" value="Enviar">
</form>
<?php
}
?>
</body>
</html>