Ver Mensaje Individual
  #5 (permalink)  
Antiguo 20/09/2011, 09:46
Avatar de paloma8513
paloma8513
 
Fecha de Ingreso: enero-2011
Ubicación: Mexico DF
Mensajes: 23
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Error en codigo de caducidad

Gracias por tu respuesta Triby, hice los cambios que me dices y funciona a medias.

ya no me marca errores y hace los calculos pero solo de este mes, no toma el time_stamp de la base solo toma la fecha actual y hace el calculo

Código HTML:
Fecha ingresada:
Fecha en la cual caduca: 2011-10-20
Fecha de actual: 2011-09-20
Dias que faltan para caducar: 30
Estado: No ha caducado
Como ves no aparece la fecha ingresadapor lo visto no esta tomando el valor de la bd

Código PHP:
f
function caducidad($tiempo){
   if (
$tiempo != "0000-00-00"){
      
$f_caduca strtotime("$tiempo +1 month");//aqui quite el segundo $tiempo
      
$f_caduca date("Y-m-d",$f_caduca);
      
$hoy date("Y-m-d");
      print 
"<b>Fecha en la cual caduca:</b> ".$f_caduca "<br>";
      print 
"<b>Fecha de actual:</b> ".$hoy "<br>";
      
      
$f_hoy strtotime($hoy);
      
$f_hoy floor($f_hoy/86400);
      
$f_caduca1 strtotime($f_caduca);
      
$f_caduca1 floor($f_caduca1/86400);
      
$f_compara = ($f_caduca1-$f_hoy);
      
      print 
"<b>Dias que faltan para caducar:</b> ".$f_compara "<br>";
      if (
$f_compara <= 0){
         return 
true;
      } else {
         return 
false;
      }
   } else {
      return 
false;
   }

si pongo manualmente la fecha si funciona y hace todos los calculos

Código HTML:
Fecha ingresada: 2011-09-11
Fecha en la cual caduca: 2011-10-11
Fecha de actual: 2011-09-20
Dias que faltan para caducar: 21
Estado: No ha caducado
en esta parte del codigo cambio la fecha manualmente

Código PHP:
$fecha_registro "2011-09-11";//aqui cambie $tiempo por la fecha

print "<b>Fecha ingresada:</b> ".$fecha_registro."<br>";
if(
caducidad($fecha_registro)){
   
   print 
"<b>Estado:</b> Ya caduco";
} else {
   
   print 
"<b>Estado:</b> No ha caducado";

como te digo parece que no esta jalando el time_stamp de la base

se me ocurre llamarlo por medio de la session ya que en el login tengo este codigo

Código PHP:
$result mysql_query("SELECT count(*) AS cuenta, usr_id, username, nombre, apellido1, apellido2, tipo_perfil_id, time_stamp FROM usuario 
                        WHERE username='"
.$_POST['usuario']."'
                        and password = '"
.md5($_POST['clv'])."';")  or die("Could not query: " mysql_error());

session_start("autentificado""usuario""nombre""apellido1""time_stamp"); 
        
$_SESSION["autentificado"]= "SI"
        
$_SESSION["usuario"] = $_POST["usuario"];
        
$_SESSION["time_stamp"] = $_POST["time_stamp"];  
        
header("Location: $redir"); 
Pero aqui no sabria como llamarlo para que inserte el time_stamp por que pongo esto

Código PHP:
$fecha_registro $_POST["time_stamp"]; 

print 
"<b>Fecha ingresada:</b> ".$fecha_registro."<br>";
if(
caducidad($fecha_registro)){
   
   print 
"<b>Estado:</b> Ya caduco";
} else {
   
   print 
"<b>Estado:</b> No ha caducado";

y no funciona sigue sin aparecer la fecha espero ser clara y puedan ayudarme