Comunidad de diseño web y desarrollo en internet online

Como validar con fechas y horas de rango con php y mysql

Citar            
MensajeEscrito el 22 Dic 2011 05:17 pm
Hola amigos

Estoy haciendo un sistema de mantenimiento a portales web, la idea es que pueda programar una fecha y hora para que cada ves que una pagina esta en mantenimiento pueda direccionarse a una index temporal durante el tiempo de fecha y hora una ves terminada que regrese a su index normal.

Esto con la finalidad de evitar estar subiendo el index por FTP.

Espero puedan ayudarme amigos por el momento tengo esto

Este es mi index donde se hace la programacion por fecha y hora, todo lo relaciones con mi BD

Código PHP :

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Sistema de Mantenimiento</title>
<link href="css/stylus.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="site">
   <div class="header"><img src="img/tec.png" width="988" height="142"></div>
    <div style="padding:10px 0;">&nbsp;</div>
    <div class="table">
    <?php //Configuracion de la conexion a base de datos
include('conexion.php');
$conexion = ConectarseBD();
$sql=mysql_query("SELECT * FROM mtto_url",$conexion); ?>
       <table align="center" cellpadding="0" cellspacing="0" border="0" width="973">
           <tr>
             <td colspan="6">
                 <div align="center" style="background-image:url(img/bg_title_table.png); background-repeat:no-repeat; width:973px; height:42px; padding-top:10px;">
                <ul class="menu-list">
                   <li>Plataforma</li>
                    <li>URL Temporal</li>
                    <li>Fecha de Inicio</li>
                    <li>Fecha Termina</li>
                    <li>Operaci&oacute;n</li>
                </ul>
                </div>
              </td>
           </tr>
           <tr>
             <td>&nbsp;</td>
             <td>&nbsp;</td>
             <td>&nbsp;</td>
             <td>&nbsp;</td>
             <td>&nbsp;</td>
             <td>&nbsp;</td>
           </tr>
          <?php while($row = mysql_fetch_array($sql)) {?>
          <form action="programar.php" method="post">
           <tr>
             <td width="43"><input type="hidden" name="id" value="<?php echo $row['id_plataform']?>"><input type="hidden" name="name" value="<?php echo $row['nombre_plataform']?>"><?php echo $row['images']?></td>
             <td width="179"><div style="padding:0 5px;"><?php echo $row['nombre_plataform']?></div></td>
             <td width="180"><div style="padding:0 5px;"><?php echo $row['url_temp']?></div></td>
             <td width="180"><div style="padding:0 5px;">Fecha actual:<br>
             <strong><?php echo $row['fecha_inicio']?></strong></div>
              <br>
              <div style="padding:0 5px;">Nueva fecha:<br>
                <select name="pickup_month" id="pickup_month">
                  <option value="01">Ene</option>
                  <option value="02">Feb</option>
                  <option value="03">Mar</option>
                  <option value="04">Abr</option>
                  <option value="05">May</option>
                  <option value="06">Jun</option>
                  <option value="07">Jul</option>
                  <option value="08">Ago</option>
                  <option value="09">Sept</option>
                  <option value="10">Oct</option>
                  <option value="11">Nov</option>
                  <option value="12">Dic</option>
                </select>
                <select name="pickup_day" id="pickup_day">
                  <option value="01">1</option>
                  <option value="02">2</option>
                  <option value="03">3</option>
                  <option value="04">4</option>
                  <option value="05">5</option>
                  <option value="06">6</option>
                  <option value="07">7</option>
                  <option value="08">8</option>
                  <option value="09">9</option>
                  <option value="10">10</option>
                  <option value="11">11</option>
                  <option value="12">12</option>
                  <option value="13">13</option>
                  <option value="14">14</option>
                  <option value="15">15</option>
                  <option value="16">16</option>
                  <option value="17">17</option>
                  <option value="18">18</option>
                  <option value="19">19</option>
                  <option value="20">20</option>
                  <option value="21">21</option>
                  <option value="22">22</option>
                  <option value="23">23</option>
                  <option value="24">24</option>
                  <option value="25">25</option>
                  <option value="26">26</option>
                  <option value="27">27</option>
                  <option value="28">28</option>
                  <option value="29">29</option>
                  <option value="30">30</option>
                  <option value="31">31</option>
                </select>
          <select name="pickup_year">
            <option value="2011">2011 </option><option value="2012">2012 </option>          </select>
          &nbsp;
          <select name="pickup_time">
            <option value="00:00"  >12 media noche
</option>
      <option value="00:30"  >12:30 AM</option>
      <option value="01:00"  >1:00 AM</option>
      <option value="01:30"  >1:30 AM</option>
      <option value="02:00"  >2:00 AM</option>
      <option value="02:30"  >2:30 AM</option>
      <option value="03:00"  >3:00 AM</option>
      <option value="03:30"  >3:30 AM</option>
      <option value="04:00"  >4:00 AM</option>
      <option value="04:30"  >4:30 AM</option>
      <option value="05:00"  >5:00 AM</option>
      <option value="05:30"  >5:30 AM</option>
      <option value="06:00"  >6:00 AM</option>
      <option value="06:30"  >6:30 AM</option>
      <option value="07:00"  >7:00 AM</option>
      <option value="07:30"  >7:30 AM</option>
      <option value="08:00"  >8:00 AM</option>
      <option value="08:30"  >8:30 AM</option>
      <option value="09:00"  >9:00 AM</option>
      <option value="09:30"  >9:30 AM</option>
      <option value="10:00"  >10:00 AM</option>
      <option value="10:30"  >10:30 AM</option>
      <option value="11:00"  >11:00 AM</option>
      <option value="11:30"  >11:30 AM</option>
      <option value="12:00"  >12 medio dia</option>
      <option value="12:30"  >12:30 PM</option>
      <option value="13:00"  >1:00 PM</option>
      <option value="13:30"  >1:30 PM</option>
      <option value="14:00"  >2:00 PM</option>
      <option value="14:30"  >2:30 PM</option>
      <option value="15:00"  >3:00 PM</option>
      <option value="15:30"  >3:30 PM</option>
      <option value="16:00"  >4:00 PM</option>
      <option value="16:30"  >4:30 PM</option>
      <option value="17:00"  >5:00 PM</option>
      <option value="17:30"  >5:30 PM</option>
      <option value="18:00"  >6:00 PM</option>
      <option value="18:30"  >6:30 PM</option>
      <option value="19:00"  >7:00 PM</option>
      <option value="19:30"  >7:30 PM</option>
      <option value="20:00"  >8:00 PM</option>
      <option value="20:30"  >8:30 PM</option>
      <option value="21:00"  >9:00 PM</option>
      <option value="21:30"  >9:30 PM</option>
      <option value="22:00"  >10:00 PM</option>
      <option value="22:30"  >10:30 PM</option>
      <option value="23:00"  >11:00 PM</option>
      <option value="23:30"  >11:30 PM</option>
        </select></div></td>
             <td width="180"><div style="padding:0 5px;">
           Fecha actual:<br>
           <strong><?php echo $row['fecha_termina']?></strong></div>
              <br>
              <div style="padding:0 5px;">Nueva fecha:<br>
                <select name="end_month" id="end_month">
                  <option value="01">Ene</option>
                  <option value="02">Feb</option>
                  <option value="03">Mar</option>
                  <option value="04">Abr</option>
                  <option value="05">May</option>
                  <option value="06">Jun</option>
                  <option value="07">Jul</option>
                  <option value="08">Ago</option>
                  <option value="09">Sept</option>
                  <option value="10">Oct</option>
                  <option value="11">Nov</option>
                  <option value="12">Dic</option>
                </select>
                <select name="end_day" id="end_day">
                  <option value="01">1</option>
                  <option value="02">2</option>
                  <option value="03">3</option>
                  <option value="04">4</option>
                  <option value="05">5</option>
                  <option value="06">6</option>
                  <option value="07">7</option>
                  <option value="08">8</option>
                  <option value="09">9</option>
                  <option value="10">10</option>
                  <option value="11">11</option>
                  <option value="12">12</option>
                  <option value="13">13</option>
                  <option value="14">14</option>
                  <option value="15">15</option>
                  <option value="16">16</option>
                  <option value="17">17</option>
                  <option value="18">18</option>
                  <option value="19">19</option>
                  <option value="20">20</option>
                  <option value="21">21</option>
                  <option value="22">22</option>
                  <option value="23">23</option>
                  <option value="24">24</option>
                  <option value="25">25</option>
                  <option value="26">26</option>
                  <option value="27">27</option>
                  <option value="28">28</option>
                  <option value="29">29</option>
                  <option value="30">30</option>
                  <option value="31">31</option>
                </select>
          <select name="end_year">
            <option value="2011">2011 </option><option value="2012">2012 </option>          </select>
          &nbsp;
          <select name="end_time">
            <option value="00:00"  >12 media noche
</option>
      <option value="00:30"  >12:30 AM</option>
      <option value="01:00"  >1:00 AM</option>
      <option value="01:30"  >1:30 AM</option>
      <option value="02:00"  >2:00 AM</option>
      <option value="02:30"  >2:30 AM</option>
      <option value="03:00"  >3:00 AM</option>
      <option value="03:30"  >3:30 AM</option>
      <option value="04:00"  >4:00 AM</option>
      <option value="04:30"  >4:30 AM</option>
      <option value="05:00"  >5:00 AM</option>
      <option value="05:30"  >5:30 AM</option>
      <option value="06:00"  >6:00 AM</option>
      <option value="06:30"  >6:30 AM</option>
      <option value="07:00"  >7:00 AM</option>
      <option value="07:30"  >7:30 AM</option>
      <option value="08:00"  >8:00 AM</option>
      <option value="08:30"  >8:30 AM</option>
      <option value="09:00"  >9:00 AM</option>
      <option value="09:30"  >9:30 AM</option>
      <option value="10:00"  >10:00 AM</option>
      <option value="10:30"  >10:30 AM</option>
      <option value="11:00"  >11:00 AM</option>
      <option value="11:30"  >11:30 AM</option>
      <option value="12:00"  >12 medio dia</option>
      <option value="12:30"  >12:30 PM</option>
      <option value="13:00"  >1:00 PM</option>
      <option value="13:30"  >1:30 PM</option>
      <option value="14:00"  >2:00 PM</option>
      <option value="14:30"  >2:30 PM</option>
      <option value="15:00"  >3:00 PM</option>
      <option value="15:30"  >3:30 PM</option>
      <option value="16:00"  >4:00 PM</option>
      <option value="16:30"  >4:30 PM</option>
      <option value="17:00"  >5:00 PM</option>
      <option value="17:30"  >5:30 PM</option>
      <option value="18:00"  >6:00 PM</option>
      <option value="18:30"  >6:30 PM</option>
      <option value="19:00"  >7:00 PM</option>
      <option value="19:30"  >7:30 PM</option>
      <option value="20:00"  >8:00 PM</option>
      <option value="20:30"  >8:30 PM</option>
      <option value="21:00"  >9:00 PM</option>
      <option value="21:30"  >9:30 PM</option>
      <option value="22:00"  >10:00 PM</option>
      <option value="22:30"  >10:30 PM</option>
      <option value="23:00"  >11:00 PM</option>
      <option value="23:30"  >11:30 PM</option>
        </select></div>
              </td>
              <td width="211" align="center"><input type="submit" value="Programar" name="program" /></td>
           </tr>
          <tr>
             <td>&nbsp;</td>
             <td>&nbsp;</td>
             <td>&nbsp;</td>
             <td>&nbsp;</td>
             <td>&nbsp;</td>
             <td>&nbsp;</td>
           </tr>
          </form>
          <?php } ?>
          </table>
</div>
    <div style="padding:10px 0;">&nbsp;</div>
    <div class="footer">Creating by Universidad TEC Milenio, San Nicolas Las Puentes.</div>
</div>
</body>
</html>



Este es el archivo que hace el update ala BD donde estan mis registros

Código PHP :

<?php if(isset($_POST['id'])){
   
   include('conexion.php');
   $conexion = ConectarseBD();

//varibles para traer la informacion que se actualizara en la tabla
// Generales
$id = $_POST['id'];
$nombre = $_POST['name'];
//varibles para traer la informacion que se insertara en la tabla
// Generales

// Fecha Inicio
$mes_ini =  $_POST['pickup_month'];
$dia_ini =  $_POST['pickup_day'];
$ano_ini =  $_POST['pickup_year'];
//$time_ini =  $_POST['pickup_time'];

// Fecha Termina
$end_mes =  $_POST['end_month'];
$end_dia =  $_POST['end_day'];
$end_ano =  $_POST['end_year'];
//$end_time =  $_POST['end_time'];

   
         //acutalizar la informacion el la tabla 
      $query = ("UPDATE  `mtto_url` SET  `fecha_inicio` =  '$ano_ini-$mes_ini-$dia_ini', `fecha_termina` = '$end_ano-$end_mes-$end_dia' WHERE  `id_plataform` =$id") or die ('Error en tabla de update');
             mysql_query($query) or die(mysql_error());
             
             echo "<script> window.alert('Fecha programada para $nombre!!'); location.href='index.php';</script>";
}
?>


Y en la pagina del portal en su index lo modifico ateponiendo una validacion para verificar si esta dentro de la fecha

Código PHP :

<?php $time = date ("Y-m-d"); ?>
<?php //Configuracion de la conexion a base de datos
include('../conexion.php');
$conexion = ConectarseBD();
$sql=mysql_query("SELECT * FROM mtto_url where id_plataform = 2",$conexion);
$row = mysql_fetch_array($sql);
?>
<?php if ($row['fecha_inicio'] == $time): ?>
<?php
$fechaInicio=strtotime($row['fecha_inicio']);
$fechaFin=strtotime($row['fecha_termina']); 

for($i=$fechaInicio; $i<=$fechaFin; $i+=86400) 
{
    echo "<script>location.href='url temporal';</script>";
}
?>
<?php else: ?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Pagina Activa</title>
</head>

<body>
   <h1>Esten es una pagina activa!!</h1>
</body>
</html>
<?php endif; ?>



Como verán por el momento solo estoy validad con la BD si la fecha inicia es igual ala actual si si me coloca la url temporal y calculando la fecha final(que no si esto jale). y si no esta en la fecha me regresa al index normal.

Indiquen me si mi lógica esta mal y como le puedo hacer para hacer mejor la validación por rangos.

Saludos y gracias.

Por kakashi2000

Claber

559 de clabLevel

5 tutoriales

Genero:Masculino  

Desarrollador de aplicaciones Web

chrome
Citar            
MensajeEscrito el 22 Dic 2011 07:15 pm
¿No es más simple tener un index secundario en otra carpeta y cambiar la ubicación por medio del script?

Al menos si vas a hacer eso, no creo necesario el uso de MySQL, simplemente consideras que fecha límite y la escribes en un archivo y accedes por un script para comparar la fecha.

Por ElSiniestro

Claber

285 de clabLevel


1 articulo

Genero:Masculino  

Alguien que Ayuda

chrome
Citar            
MensajeEscrito el 22 Dic 2011 07:32 pm
Hola ElSiniestro

Gracias por tu respuesta, en realidad no ya que es un sistema que lo ususara un usuario que no tiene idea de esto, y es una forma de evitar que me pidan esa solicitud y que ellos mismos puedan hacerlo.

Por el momento la fecha lo tengo en ciclo, pero a un no esta de todo bien, ya que necesito tambien validad horas. Esto en que caso que el matto solo sea por horas y no por dia.

Mira este script

Código PHP :

<?php
$fechaInicio=strtotime($row['fecha_inicio']);
$fechaFin=strtotime($row['fecha_termina']);
 if ($fechaInicio == $timetime): {
   for($i=$fechaInicio; $i<=$fechaFin; $i+=86400){
       echo "<script>location.href='" . $row['url_temp']. "';</script>";
   }
 }
 endif;
?>


Saludos

Por kakashi2000

Claber

559 de clabLevel

5 tutoriales

Genero:Masculino  

Desarrollador de aplicaciones Web

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.