entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Duda Como Mantener la Hora Actualizada antes de Enviarla por Post PHP

Hola amigos tengo un problema espero me ayuden como puedo mantener la hora acutualizada en un formulario ala ora de enviar los datos se envia tambien la hora el problema no es enviar los datos sino tener mi hora actualizada ora del servidor el problema es este tengo este codigo que me muestra la hora correctamente el problema es que si el usuario entra al formulario digamos alas 6:00pm suponiendo y se tarda en llenarlo unos 15 min suponiendo entonces ala hora de enviar los datos la hora seria 6:15 pm correctamente y me problema es que al enviar los datos seguirian siendo las 6:00pm por no actualizarse automaticamente la hora y se guardarian en una base de datos .

este es el codigo de la hora :

//AKI SELECCIONO LA ZONA DE HORARIO
date_default_timezone_set("America/Mexico" ) ; 
//AKI LA HORA Y SI ES AM O PM
$hora= date('g:i a'); 
 //AKI IGUALO EL CAMPO POR UNA VARIABLE LLAMADA HORA
$Dato["hora"]=$hora;
 //Y SE IMPRIME EL TIEMPO
 echo $hora 

Espero me ayuden !!SALUDOS

1 Respuesta

4votos

Leonardo-Tadei Puntos227020

Hola Alan,

no hay ningún mecanismo válido para confiar en la hora que viene desde un cliente.

Sin embargo, la solución es fácil: en vez de tomar la hora al momento de generar el formulario, tomala en el código que recibe los datos del formulario: de esta forma siempre será la hora del servidor.

No hay ningún problema en enviar la hora al cliente para que la vea, siempre y cuendo no la uses. Sin embargo verás que la mayoría de los sitios que hacen esto, muestran la hora de la consulta/ticket/lo-que-sea después de haber enviado los datos.

Saludos!

0voto

Alan comentado

Hola Leonardo primero gracias por tomarte el tiempo de leer mi duda amigo y dusculpa mi ignorancia no comprendido biien lo que me das entender si pudiaras mostrarme un ejemplo me quedaria muy claro amigo te lo agradeseria mucho por favor.. !!saludos

0voto

Leonardo-Tadei comentado

Claro que te puedo dar un ejemplo: por favor, poné el código PHP que recibe los datos del formulario y los procesa, así te lo modifico y comento.

0voto

Alan comentado

HOLA amigo claro que si mira este es mi codigo:

De aqui procesa los datos y lo envia ami base de datos
<?
// incluimos la conexion

//variables con el nombre que se le da alos input o cajas de texto
$nombre_usuario=$_POST['nombre_del_input'];
$edad_usuario=$_POST['nombre_del_input'];
$hora=$_POST['nombre_del_input'];

//selecciono la base de datos
mysql_select_db("Base de Datos");

//codigo para insertar ala base de datos
$sql= "INSERT TABLA (nombre,edad,hora) values('$nombre_usuario','$edad_usuario','$hora')";

mysql_close();

?>

y me inserta los datos del formulario correctamente.

0voto

Leonardo-Tadei comentado

Hola Alan,

hacé lo siguiente:

<?php
// incluimos la conexion

//variables con el nombre que se le da alos input o cajas de texto
$nombreusuario=$POST['nombredelinput'];
$edadusuario=$POST['nombredelinput'];
//$hora=$POST['nombredel_input']; <-- No se toma de acá porque es un origen no confiable
date_default_timezone_set("America/Mexico" ) ; 
$hora= date('g:i a'); // <-- esta hora es siempre la actual

//selecciono la base de datos
mysqlselectdb("Base de Datos");

//codigo para insertar ala base de datos
$sql= "INSERT TABLA (nombre,edad,hora) values('$nombreusuario','$edadusuario','$hora')";
mysql_close();
?>

Como sugerencia, sería mejor que el campo 'hora' sea de tipo datetime para poder guardar fecha y hora... claro que esto depende del problema y de las consultas que debas hacer después, como por ejemplo, cuantas entradas diarias hay.

Saludos!

0voto

Alan comentado

muchas gracias amigo resolvistes mi duda !!saludos

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta