elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Impedir la repetición de una acción?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Impedir la repetición de una acción?  (Leído 4,284 veces)
Servia


Desconectado Desconectado

Mensajes: 346


Ver Perfil
Impedir la repetición de una acción?
« en: 6 Febrero 2010, 13:19 pm »

He estado buscando por google algo estilo sesiones que no permita al usuario repetir la acción por ejemplo de reenviar un formulario (eso de actualizar una vez enviado o que le de error y va y le permite hacer el envío de nuevo).

Diria que smf usa algo por el estilo


En línea

dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Re: Impedir la repetición de una acción?
« Respuesta #1 en: 7 Febrero 2010, 21:10 pm »

A ver es sencillo, si te explicas un poquito mejor te intentaré ayudar...


En línea




Syphroot

Desconectado Desconectado

Mensajes: 268


All You Need To Do Is Follow The Worms


Ver Perfil WWW
Re: Impedir la repetición de una acción?
« Respuesta #2 en: 7 Febrero 2010, 22:10 pm »

Pues como tu mismo lo has escrito, crea una variable de sesión cuando se realiza por primera vez la acción (envía datos en un form) y el código que recibe los datos que revise si ya existe esa variable (esta repitiendo la acción), si no, pues es la primera vez que se realiza. Me explico?

La otra opción es que cuando pulsen los botones de envio, los deshabilites con javascript (como una medida mas, mas no definitiva).
En línea

dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Re: Impedir la repetición de una acción?
« Respuesta #3 en: 7 Febrero 2010, 22:43 pm »

Syphroot el problema es que tendría que decir para que es, por que si cada vez da una variable aleatoria no funcionaría ya que cada vez que envie esa acción tendría un valor distinto la variable aletoria y pasaría igualmente, por eso tiene que explicar el que.

Si lo haces por db (que es como tendrías que hacerlo) crea una tabl con las acciones tipo "borrar, editar, crear" y cargalo con "1" cuando lo hagan y si no quieres que vuelvan hacer alguna de esas tres acciones primero lees si el contenido de por ejemplo "editar" y con un "if" permites o no la acción mirando si tiene o no el "1" en editar.

Es como yo lo haría, esto me recuerda a lo del fotolog "Sólo una imagen por día, borrar todas las que quieras y editar sólo los 30 primeros minutos"

Un saludo, espero haber ayudado (espero xD)
En línea




Servia


Desconectado Desconectado

Mensajes: 346


Ver Perfil
Re: Impedir la repetición de una acción?
« Respuesta #4 en: 7 Febrero 2010, 23:19 pm »

xD
Yo me refiero a que justo la hayan hecho no puedan repetirla, deban esperar, como aqui al postear, para evitar entradas multiples del mismo contenido a la db.
En línea

dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Re: Impedir la repetición de una acción?
« Respuesta #5 en: 7 Febrero 2010, 23:47 pm »

xD
Yo me refiero a que justo la hayan hecho no puedan repetirla, deban esperar, como aqui al postear, para evitar entradas multiples del mismo contenido a la db.

Pues lo que te he puesto, pero en vez de uno, que guarde cuando se publicó con la función time() y si la diferencia entre los dos time es mayor a 30 segundos por ejemplo que le deje publicar.

Me entiendes?
En línea




Castg!
Wiki

Desconectado Desconectado

Mensajes: 1.191



Ver Perfil WWW
Re: Impedir la repetición de una acción?
« Respuesta #6 en: 8 Febrero 2010, 01:43 am »

pero para uno seria muy facil borrar la cookie o sesison o lo que deje en tu pc, justamente la cosa no es dejarla en tu pc, sino del lado del servidor. podes hacer un filtro por ips.
conseguis la ip del cliente:
Código:
 $_SERVER['REMOTE_ADDR']
, y la guardas en un txt:
Código:
fwrite($ip."\n", $archivo);
luego cuando trate de volver a enviar el formulario abris el archivo:
Código:
$contenido = readfile($archivo); 
y terminas comprobando si ya guardaste su ip,
Código:
if(preg_match("/.*".$ip.".*/"))
. y listo


saludos!
En línea

fede_cp


Desconectado Desconectado

Mensajes: 527


"porque pensar nunca fue entender"


Ver Perfil WWW
Re: Impedir la repetición de una acción?
« Respuesta #7 en: 8 Febrero 2010, 02:16 am »

pero la idea es que no te deje dentro de un determinado tiempo. no cuando cambia la ip, ya que la ip cambia por ejemplo cuando me desconecto y conecto. yl o que el quiere es por tiempo.


es como dice dimitrix.

pones con la funcion time que te saque el tiempo los comparas y si pasa determinada cifra es posible la modificacion o no.



saludos!
En línea

somos lo que hacemos para cambiar lo que somos

http://elhackerblog.blogspot.com el blog de elhacker.net!!
Castg!
Wiki

Desconectado Desconectado

Mensajes: 1.191



Ver Perfil WWW
Re: Impedir la repetición de una acción?
« Respuesta #8 en: 8 Febrero 2010, 02:35 am »

le guardas tambien la hora y dia y despues la comparas, lo mismo
En línea

Syphroot

Desconectado Desconectado

Mensajes: 268


All You Need To Do Is Follow The Worms


Ver Perfil WWW
Re: Impedir la repetición de una acción?
« Respuesta #9 en: 10 Febrero 2010, 07:18 am »

Completamente de acuerdo dimitrix, fede_cp, Castg! asociando un timestamp a la acción (sería como ir "logeando" lo que hace el usuario) incluso tendrías que comparar contenido (por lo que he entendido)... porque puede suceder el caso que no pasen ni 30 segundos por ejemplo (o menos para los veloces del teclado) y haga otra vez la misma acción pero con "contenido" diferente. Si... emmm, ¿De que trata tu app?

Saludos a todos!
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Repetición de palabra en batch « 1 2 »
Scripting
javiii_11 13 7,812 Último mensaje 1 Diciembre 2010, 00:01 am
por javiii_11
ayuda repeticion
Programación C/C++
Choke1 5 2,575 Último mensaje 9 Mayo 2015, 18:39 pm
por Choke1
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines