en fin, mi solución:
Pagina que envía datos:
Código PHP:
<?php
print "<html><body>";
?>
<script>
function checkForm(frm){
if (frm.TXTnombre.value.length == 0)
{
alert("Debe ingresar el nombre de usuario");
frm.TXTnombre.focus();
return false;
}
return true;
}
</script>
<form method='POST' action='edad02.php' onsubmit="return checkForm (this)">
<table border='3' cellspacing='2' align='center'>
<tr><td colspan='4' align='center'>Ingrese sus datos<br/>de nacimiento </td>
</tr>
<tr><td width='50' align='center'>Dia (01-31)</td> <td width='50' align='center'>Mes (01-12)</td> <td width='50' align='center'>Año</td><td width='100' align='center'>Nombre</td>
</tr>
<tr>
<td align='center'>
<input type='text' name='TXTdia'></td>
<td align='center'>
<input type='text' name='TXTmes'></td>
<td align='center'>
<input type='text' name='TXTanio'></td>
<td align='center'>
<input type='text' name='TXTnombre' maxlength='16' size='16'></td>
</tr>
<tr>
<td colspan='4' align='center'><input type='submit' name='btnEnviar' value='Enviar'></td>
</tr>
</table>
</form>
<?php
print "</body></html>";
?>
Pagina que recibe datos, y devuelve resultado:
Código PHP:
<?php
$dd=($_POST['TXTdia']);
$mm=($_POST['TXTmes']);
$aaaa=($_POST['TXTanio']);
/**
* Recibe Datos de fecha de nacimiento.
* Devuelve: Un valor entero que es la edad actual de la persona
*/
function CalcularEdad($dd, $mm, $aaaa)
{
// Carga los datos de este instante
$now_dd = date("d");
$now_mm = date("m");
$now_yyyy = date("Y");
$delta_a = $now_yyyy - $aaaa - 1;
// Ahora voy a analizar las situaciones en las que deberia sumarle uno.
if ($now_mm >= $mm) // Si el mes actual es mayor o igual al del cumple
{
if ($now_mm > $mm) // Ya cumplió años, así que debo sumar 1
{
$delta_a += 1;
}
else // Si es el mismo mes, debemos pasar a comparar los dias
{
if ($now_dd >= $dd) // Si la fecha actual es superior o igual a la del cumple, hay que sumar 1
{
$delta_a += 1;
}
}
}
return $delta_a;
}
// Código para probar la funcion
// Por ej, hago la llamada: http://localhost/.../edad.php?bdd=14&bmm=09&byyyy=2000
$bdd = $_REQUEST['TXTdia'];
$bmm = $_REQUEST['TXTmes'];
$byyyy = $_REQUEST['TXTanio'];
$bUser = $_REQUEST['TXTnombre'];
$bmensaje="";
$CEdad=CalcularEdad($bdd,$bmm,$byyyy);
$diferenciarEdad=Edades ($CEdad,$bmensaje,$bUser);
function Edades ($CEdad,$mensaje,$bUser){
if (($CEdad>=18) && ($CEdad<=70)) //si esta entre 18 y 70 años:
{
$mensaje=$bUser.": Con sus ".$CEdad." años, usted puede realizar gestiones comerciales y compras on-line libremente.";
}
else //si no esta entre 18 y 70 años :
{
if ($CEdad<18) //si es menor que 18:
{
$mensaje=$bUser.": Usted no puede realizar transacciones comerciales.<br/>Debe ser mayor a 18 años, y usted tiene ".$CEdad." años.";
}
else //si no es menor que 18, no esta entre 18 y 70, entonces, tiene mas de 70:
{
$mensaje = $bUser.": Tenga usted cuidado, no se vaya a gastar toda la jubilación en compras on-line.";
}
}
return $mensaje;
}
print "<html><body>\n";
print "Hoy es: <b>".date("d / m / Y - H:i:s")."</b><br/>\n";
print "Nombre:<b> ". $bUser ."</b><br/>\n";
print "Fecha de nacimiento:<b> $bdd / $bmm / $byyyy </b><br/>\n";
print "Edad: <b>". $CEdad ."</b> años.<br />\n";
print "Mensaje del sistema: <b>". $diferenciarEdad ."</b>\n";
print "</body>\n</html>\n";
?>