Hola de nuevo.
El problema es que el código coge la fecha de hoy a las 00:00 y si lo están escribiendo 1 minuto después lo toma como una fecha anterior. He hecho algunos retoque, a ver que tal:
Código PHP:
<html>
<head>
<script type="text/javascript">
function valida(fec) {
fec=fec.split('-').join('/');
f1=new Date(fec+' 23:59:59');
f2=new Date();
if (f1<f2) {
alert('La fecha no puede ser anterior');
return false;
}
f2.setTime(f2.getTime()+7*24*60*60*1000);
if (f1>f2) {
alert('Han pasado más de 7 días');
return false;
}
}
</script>
</head>
<body>
<form action="javascript:alert('si')" onsubmit="return valida(fecha.value)">
<input type="text" name="fecha" />
<input type="submit" />
</form>
</body>
</html>
Saludos,