Foros del Web » Programando para Internet » PHP »

Autorizar un "INSERT" desde php

Estas en el tema de Autorizar un "INSERT" desde php en el foro de PHP en Foros del Web. Buenos amigos tengo una duda y e buscado en google pero no encuentro lo que busco. Tengo un formulario donde unos clientes deben de registrar ...
  #1 (permalink)  
Antiguo 29/04/2013, 16:14
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 7 meses
Puntos: 19
Autorizar un "INSERT" desde php

Buenos amigos tengo una duda y e buscado en google pero no encuentro lo que busco.

Tengo un formulario donde unos clientes deben de registrar sus ventas diarias, pero para ello tienen un limite de tiempo (si tratan de registrar la información después no deberían poder)

no tengo idea de como hacerlo, lo que se me ocurre es crear un campo en mi tabla llamado TEMP y asignarle el valor de 1 (Como activo) para identificar las consultas que no estan autorizadas y crear un panel donde cambie ese 1 a 0.

Pregunto: Existe una Mejor idea? tienen alguna sugerencia al respecto?
  #2 (permalink)  
Antiguo 29/04/2013, 17:11
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Autorizar un "INSERT" desde php

Es un problema que no se hace ocn PHP, ya que el evento de tiempo en el cliente (navegador), no se puede controlar en el servidor (PHP), en todo caso se hace con JavaScript, donde perfectamente puedes regular eso.
Si bien es un tema de otro Foro (JavaScript), puedo adelantarte que es medio de manual: http://www.w3schools.com/js/js_timing.asp
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 29/04/2013, 17:13
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 7 meses
Puntos: 2237
Respuesta: Autorizar un "INSERT" desde php

Usa sesiones, simplemente asignas el tiempo límite a una variable de sesión y la comparas con la hora en que se está realizando la consulta, ejemplo:

Asignar tiempo límite:
Código PHP:
Ver original
  1. <?php
  2. // Hora actual más media hora (1800 segundos)
  3. $_SESSION['tiempo'] = time() + 1800;

Verificas si todavía puede hacer la consulta:
Código PHP:
Ver original
  1. <?php
  2. if(!isset($_SESSION['tiempo']) || $_SESSION['tiempo'] < time()) {
  3.     die('Excediste el tiempo límite.');
  4. }
__________________
- León, Guanajuato
- GV-Foto
  #4 (permalink)  
Antiguo 30/04/2013, 08:20
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 7 meses
Puntos: 19
Respuesta: Autorizar un "INSERT" desde php

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Es un problema que no se hace ocn PHP, ya que el evento de tiempo en el cliente (navegador), no se puede controlar en el servidor (PHP), en todo caso se hace con JavaScript, donde perfectamente puedes regular eso.
Si bien es un tema de otro Foro (JavaScript), puedo adelantarte que es medio de manual: http://www.w3schools.com/js/js_timing.asp
Obviamente se que para obtener la hora por Cliente tengo que usar Java y es lo que no hare porque el cliente puede cambiar su hora para violar el uso del sistema, por eso lo hare con PHP seteando la zona horaria para no tener errores en la obtención de la hora.

Cita:
Iniciado por Triby Ver Mensaje
Usa sesiones, simplemente asignas el tiempo límite a una variable de sesión y la comparas con la hora en que se está realizando la consulta, ejemplo:

Asignar tiempo límite:
Código PHP:
Ver original
  1. <?php
  2. // Hora actual más media hora (1800 segundos)
  3. $_SESSION['tiempo'] = time() + 1800;

Verificas si todavía puede hacer la consulta:
Código PHP:
Ver original
  1. <?php
  2. if(!isset($_SESSION['tiempo']) || $_SESSION['tiempo'] < time()) {
  3.     die('Excediste el tiempo límite.');
  4. }
ahora bien esta claro que para verificar si se puede hacer la consulta debo de verificar el tiempo (ya que el registro no puede hacerde despues de las 16:00) asi que aqui no usaríamos una variable de tiempo, lo que quiero saber es como puedo controlar el hecho de que si un Usuario inserta un registro despues de las 16, quede en una tabla temp, o en la misma tabla esperando aprobacion, nose si me estoy explicando..?

Es algo asi como el registro de usuarios, Uno se registra y la cuenta no queda "Activa" hasta que un super usuario la habilite, es algo parecido pero con registros de ventas...
  #5 (permalink)  
Antiguo 30/04/2013, 08:27
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Autorizar un "INSERT" desde php

Cita:
ahora bien esta claro que para verificar si se puede hacer la consulta debo de verificar el tiempo (ya que el registro no puede hacerde despues de las 16:00) asi que aqui no usaríamos una variable de tiempo, lo que quiero saber es como puedo controlar el hecho de que si un Usuario inserta un registro despues de las 16, quede en una tabla temp, o en la misma tabla esperando aprobacion, nose si me estoy explicando..?
Tablas de transacciones, Event y Stored procedures.
AL menos desde esa óptica, porque cualquier procesamiento no on-line, debe ser manejado por procesos programados, sea en el cron o en la base.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 30/04/2013, 08:49
 
Fecha de Ingreso: abril-2013
Mensajes: 34
Antigüedad: 10 años, 11 meses
Puntos: 3
Respuesta: Autorizar un "INSERT" desde php

siguiendo tu logica, debes tener una tabla temporal (o tabla para usuarios registrados pasado las 16:00) y si el usuario se registra pasado las 16:00 se inserta en dicha tabla, luego debes crear una página para que un usuario administrador pueda ver los usuarios registrados pasadas las 16:00 para poder activarlos, si el administrador los activa se pasan los datos desde la tabla temporal a la tabla de usuarios.
  #7 (permalink)  
Antiguo 30/04/2013, 08:51
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 7 meses
Puntos: 19
Respuesta: Autorizar un "INSERT" desde php

Bueno me acaban de dar otra idea que es algo que Nunca e hecho, después de las 16 horas al formulario original crearle otro campo para que pida un código, este código debe ser generado por otro modulo (que solo lo acensen super usuarios) a través de cualquier función de php o java que me permita hacer eso, ese código que me genere ese modulo insertarlo en una tabla (tabla_codigo), al momento de que la persona registre los datos en el form, que consulte si el codigo que esta colocando es el insertado en la tabla, de ser asi Insertar la información y borrar el codigo de la tabla (tabla_codigo)

No se que tan factible es hacer eso...
  #8 (permalink)  
Antiguo 30/04/2013, 09:01
 
Fecha de Ingreso: abril-2013
Mensajes: 34
Antigüedad: 10 años, 11 meses
Puntos: 3
Respuesta: Autorizar un "INSERT" desde php

2 cosas; java y javascript son muy distintos.

y eso es tan factible como tu lo permitas, porque aun asi le estas permitiendo que se registre pasada las 16:00, por lo tanto depende simplemente de lo que te hayan solicitado hacer y de la seguridad que le pongas al codigo.
  #9 (permalink)  
Antiguo 30/04/2013, 10:32
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 7 meses
Puntos: 2237
Respuesta: Autorizar un "INSERT" desde php

Cita:
Iniciado por JuJoGuAl Ver Mensaje
Tengo un formulario donde unos clientes deben de registrar sus ventas diarias, pero para ello tienen un limite de tiempo
Cita:
Iniciado por JuJoGuAl Ver Mensaje
ya que el registro no puede hacerde despues de las 16:00
Me pregunto cuál es el impedimento de ser claro desde el principio.
__________________
- León, Guanajuato
- GV-Foto
  #10 (permalink)  
Antiguo 30/04/2013, 15:09
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 7 meses
Puntos: 19
Respuesta: Autorizar un "INSERT" desde php

Cita:
Iniciado por Triby Ver Mensaje
Me pregunto cuál es el impedimento de ser claro desde el principio.
Si fue un error de Tipeo.. pero ya me quedo claro lo que debo de hacer y voy a tomar unas sugerencias que lei, en lo que tenga algo concreto lo publico aqui para aquellos que necesiten hacer algo similar
  #11 (permalink)  
Antiguo 30/04/2013, 21:01
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 10 meses
Puntos: 320
Respuesta: Autorizar un "INSERT" desde php

Una opcion bastante pava, porque en la tabla de la base donde guardes los registros no pones un campo timestamp con la hora en que se registra y un campo tinyint para decir si esta habilitado o no.

desde php en el insert si esta en horario valido pones habilitado=1 sino habilitado=0

despues de eso puedes crear un modulo donde los administradores vean las ventas con habilitado=0 y si quieren cambia el estado y la habilita.

con el campo timestamp puedes si quieres haciendo un uso adecuado de la funcion between de mysql puedes mostrar solo los que esten en un intervalo de tiempo (eje: entre las 14:00 y las 16:00) .

no veo para que complicarse mas
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #12 (permalink)  
Antiguo 30/04/2013, 21:49
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 7 meses
Puntos: 19
Respuesta: Autorizar un "INSERT" desde php

Cita:
Iniciado por NSD Ver Mensaje
Una opcion bastante pava, porque en la tabla de la base donde guardes los registros no pones un campo timestamp con la hora en que se registra y un campo tinyint para decir si esta habilitado o no.

desde php en el insert si esta en horario valido pones habilitado=1 sino habilitado=0

despues de eso puedes crear un modulo donde los administradores vean las ventas con habilitado=0 y si quieren cambia el estado y la habilita.

con el campo timestamp puedes si quieres haciendo un uso adecuado de la funcion between de mysql puedes mostrar solo los que esten en un intervalo de tiempo (eje: entre las 14:00 y las 16:00) .

no veo para que complicarse mas
tu idea fue la que originalmente tube, pero mis jefes no quieren ver un "acumulativo" de esos registros asi q el dia q los usurios le pidan el codigo ellos puedan averiguar porque se tardaron a la hora de añadirlos
  #13 (permalink)  
Antiguo 01/05/2013, 11:11
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 10 meses
Puntos: 320
Respuesta: Autorizar un "INSERT" desde php

Cita:
pero mis jefes no quieren ver un "acumulativo" de esos registros asi q el dia q los usurios le pidan el codigo ellos puedan averiguar porque se tardaron a la hora de añadirlos
si no quieren verlo no se lo muestres... solo muestrales una opcion medio escondida que diga "ver tareas fuera de hora" y ahi muestras un campo tipo date para que elijan de que dia quieren ver y solo le muestras un dia en particular. tambien podrias hacer con cronjob un script que una vez por semana borre todos los datos de la base con habilitado=0 automaticamente o agregar un boton que diga "borrar todas las tareas mal entregadas" para que el usuario lo haga manualmente cosa de no guardar basura en la base por mucho tiempo,.

pensa que lo que al cliente le mostras no tiene por que ser lo que tu sistema utilice. solo mostras lo que el quiere ver, pero de fondo tu estructura de trabajo puede ser distinta.

piensa esto: si el cliente no quiere ver un listado y apretar un boton para habilitar una publicacion, ¿cuanto tiempo crees que pase antes de que se aburra de tener que generar codigos, enviarselos a los editores, para despues verificar que es lo que envio?

es mucho mas practico que tenga el listado, puede ver en el momento que se envio y habilitarlo con un clic.

tu eres el diseñador, pero en mi opinion lo que te pidio del codigo es inviable. en un mes lo tendras pidiendo que lo arregles.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Etiquetas: formulario, insert, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:55.