Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-04-2007
Avatar de KeyMan
KeyMan KeyMan is offline
Miembro
 
Registrado: oct 2005
Posts: 32
Poder: 0
KeyMan Va por buen camino
Despues de un insert

Hola amigos como hacer lo siguiente.

Un usuario añade un comentario, una vez echo esto, si es malicioso este puede ir otra vez a la página anterior y puede volver ha insertar otro comentario, el tema seria que no pudiera ir hacia atrás o que en un determinado tiempo no pudiera insertar. Como puedo hacerlo o como pensais que seria el metodo adecuado.
__________________
Saludos.. KeyMan
Responder Con Cita
  #2  
Antiguo 23-04-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Necesitarías poder identificar unívocamente los comentarios para que estos no puedan duplicarse. Sin embargo ahora mismo no veo cómo puede hacerse esto claramente. Ignoro si acaso el título del comentario pudiera servir, por ejemplo. Pero estaríamos impidiendo comentarios distintos con el mismo título.

Podría tal vez juntarse un campo "fecha" con el campo "título" de modo que consideremos duplicado un comentario que tiene el mismo título que otro publicado el mismo día, por ejemplo. O tal vez, si los comentarios son enviados por usuarios "registrados", no permitir a un mismo usuario enviar más de un comentario con el mismo título, pero, me temo que esto también es limitar bastante.

En todo caso piensa eso. Si lo que tuvieras que guardar fueran "enlaces" en lugar de comentarios, podrías coger un supuesto campo "URL" de los enlaces como unívoco: así un mismo usuarios no podría insertar más de dos enlaces con la misma URL. Pero, tratándose de comentarios la cosa cambia, porque, pienso que el título de un comentario no puede compararse con la URL de un enlace.

No sé. Como no quiero liarla más me quedo de momento con juntar dos campos: fecha del comentario y título del mismo. Así, antes de realizar la inserción en la base de datos podrías comprobar si existe un comentario con dicho título enviado el mismo día, e incluso si lo envió el mismo comentario, y en caso afirmativo no insertar el comentario e informar al usuario de esta circunstancia.

Respecto de que el usuario no pueda volver atrás en la página Web... de modo que duplique "accidentalmente" un comentario... si ponemos la cortapisa indicada anteriormente ya no podría darse este caso. Y, en todo caso, piensa que cuando se envía un formulario y se "refresca" la página o se "vuelve" a la página del formulario... es el navegador quien pregunta al usuario si quiere volver a enviar los datos del formulario... y yo ahora mismo no sé cómo podría evitarse esto.

También podrías hacer alguna otra cosa para evitar que un usuario enviara "muchos" comentarios en poco tiempo, variando el título del comentario, para saltarse la barrera que comentamos antes. Puedes, por ejemplo, utilizar un "captcha" ("Prueba de Turing pública y automática para diferenciar a máquinas y humanos"), ya sabes, una imagen que muestra un código que el usuario ha de rellenar cada vez que va a enviar el formulario, y que previamente se comprobará si es correcto o no.

Y aparte de eso puedes utilizar las sesiones de PHP, de modo que guardes en variables de sesión el número de comentarios enviados por un determinado usuario (en realidad los comentarios enviados desde una misma sesión de usuario), número que luego podrías comprobar para actuar en consecuencia. Puedes usar también variables de sesión para almacenar además del número de comentarios la IP del usuario, por ejemplo, de modo que ya no pueda enviar comentarios... qué sé yo, en un día entero, no sólo en su sesión de usuario.

Como ves no he puesto código alguno, pero, si quieres que entremos más en detalles pues lo vamos haciendo paulatinamente, con la ayuda del resto de compañeros.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Recuperar autoinc. después de Insert to aig MS SQL Server 2 22-09-2004 10:41:28
obtener valor de un campo despues de un insert + applyupdates(0) wonder boy Conexión con bases de datos 1 10-06-2004 23:05:39
Después de un INSERT SaurioNet SQL 3 02-03-2004 16:19:06
¿Por qué CommitRetaining funciona después de agregar, pero no después de modificar? Al González Firebird e Interbase 7 16-02-2004 23:47:28
Insert automatico despues de Delete jealousy Conexión con bases de datos 2 20-09-2003 02:25:14


La franja horaria es GMT +2. Ahora son las 15:51:56.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi