Claro pedazo de melón (gjulian), estoy totalmente deacuerdo con
serverdns, además metes tres if, cuando solo deberías usar dos, uno que verifica que las variables sean números enteros y otro que verifique que la fecha sea válida.
Tu código:
$dia = 1; // Esta es mi variable, asíganel una tuya
$mes = 2; // Esta es mi variable, asíganel una tuya
$año = 3; // Esta es mi variable, asíganel una tuya
$fecha=(checkdate($mes, $dia, $año));
if (isset($_POST["fecha"])&&((int)$dia) && ((int)$mes) && ((int)$año)){
if($fecha=(checkdate($mes, $dia, $año))){
echo $fecha=$_POST["fecha"];
}
if(!isset($_POST["fecha"])&&($fecha=(!checkdate($mes, $dia, $año)))){
echo"fecha incorrecta";
}
}else{
echo"Diga fecha";
}
El código tal cual como te lo pasé funciona perfectamente, a las variables
$dia,
$mes,
$ano deberías asignarles
$_POST distintos y no mis números que solo era para ejemplificar el script, es decir, para que te funcione mi código usa tres <select> -> día, mes año (esta idea te la dió
serverdns al principio :) ).
$dia = $_POST['dia'];
$mes = $_POST['mes'];
$año = $_POST['ano'];
if ((int)$dia && (int)$mes && (int)$año){
if(checkdate($mes, $dia, $año)){
echo $fecha=$_POST["fecha"];
}else{
echo"Fecha incorrecta. Por favor, introduzca una fecha válida";
}
Solo necesitas de un
IF que verifique que los valores de las variables
$_POST son números enteros y otro
IF que verifique que la fecha es válida.
Los tres select.
<form id="form1" name="form1" method="post" action="">
<label>
<select name="mes" id="mes">
</select>
</label>
<label>
<select name="dia" id="dia">
</select>
</label>
<label>
<select>
<select name="ano" id="ano">
</select>
</label>
</form>