creen que sea posible algo asi? o bueno acepto cualquier tipo de sugerencia
![:-P](http://static.forosdelweb.com/fdwtheme/images/smilies/tongue.png)
Salu2
![Adios](http://static.forosdelweb.com/fdwtheme/images/smilies/adios.gif)
| |||
Respuesta: Restringir uso de pagina PHP Pues puedes utilizar IF y strlen para comprobar el número de caracteres que envian al formulario y si se cumple lo que pidas que lo añada al registro o no. Si por ejemplo el nombre es de menos de 2 caracteres y también la dirección está claro que no quieren registrarse realmente. También podrías comprobar si envian alguna parte del formulario vacío. Y ahora está muy de moda Captcha podrías añadir uno. Última edición por Arkaitz; 02/10/2011 a las 03:26 |
| ||||
Respuesta: Restringir uso de pagina PHP Podrías montarte un sistema de cookies para registrar la ip, o mediante una base de datos, pero sería algo mas complejo, si usas los captcha como ha dicho Arkaitz te será mucho mas fácil y mas claro en cuanto a código. Saludos |
| |||
Respuesta: Restringir uso de pagina PHP Entiendo lo que pides, la verdad es que es muy comprensible. No solo por los "graciosos", sino por los spamers. Se puede hacer perfectamente lo que pides. De hecho yo implemente un captcha (como ya te han sugerido) en plan básico con sumas de números, y un sistema similar al que pides con sesiones y combinadolo con registros de ip con fecha y hora del envio que se graban en una table de mysql, y luego iba comparando la ip con la fecha-hora de envio y si, por ejemplo contaba que había enviado más de 10 mails en cinco minutos bloqueaba la ip durante un tiempo determinado. También se puede hacer solo con sesiones (más sencillo en principio), lo malo es que si el gracioso o spamer puede cerrar el navegador y al volver abrirlo se se crea otra sesion, aunque puedes utilizar cookies como te han sugerido. Se puede hacer de muchas formas. |
| ||||
Respuesta: Restringir uso de pagina PHP Gracias por las respuestas ! Cita: En general esto seria lo que quisiera hacer pero veo dificil que lo implemente yo solo si no veo algun prefabricado, lo estudie y lo adecue ya que soy bastante noob en php xD seria de gran ayuda si conocen algun prefabricado asi para comenzar a estudiarlo registros de ip con fecha y hora del envio que se graban en una table de mysql, y luego iba comparando la ip con la fecha-hora de envio y si, por ejemplo contaba que había enviado más de 10 mails en cinco minutos bloqueaba la ip durante un tiempo determinado. tomare en cuenta tambien lo del captcha aunque para una persona real seria facil saltarselo, y no creo que funcione mucho el nº de caracteres en el campo por si el troll escribe mas "sadasdsad" Salu2 ![]() |
| ||||
Respuesta: Restringir uso de pagina PHP Te doy un ejemplo y vos divertite.... formulario.html -> completo datos y voy a ---> formulario.php en formulario.php ante todo le pengo: session_start(); Código PHP: consultas si la variable formulario esta setiada con isset(); si no lo esta, la setea, y te permite enviar el formulario. si lo esta, te redirige a otra pagina. Divertite esta bueno PHP. ( jajaj re politico) |
| |||
Respuesta: Restringir uso de pagina PHP Si quieres te posteo el mio para que te hagas una idea. Aunque supongo que se podrá hacer más simple e igual de efectivo. Pero bueno, aqui va: Primeramente el formularioa para que te hagas una idea: Código PHP: |
| |||
Respuesta: Restringir uso de pagina PHP CONTACTAR.PHP Código PHP: |
| |||
Respuesta: Restringir uso de pagina PHP Pero antes de todo habría que crear las dos tablas en Mysql: -- Estructura de tabla para la tabla `guardar_contactar` -- CREATE TABLE IF NOT EXISTS `guardar_contactar` ( `id_contactar` int(9) NOT NULL auto_increment, `id_anuncio` int(8) NOT NULL, `Nombre` char(30) NOT NULL, `email` varchar(35) NOT NULL, `ip` varchar(15) NOT NULL, `fecha` date NOT NULL, `hora` time NOT NULL, PRIMARY KEY (`id_contactar`), KEY `id_anuncio` (`id_anuncio`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -- Volcar la base de datos para la tabla `guardar_contactar` -- -- -- Filtros para las tablas descargadas (dump) -- -- -- Filtros para la tabla `guardar_contactar` -- ALTER TABLE `guardar_contactar` ADD CONSTRAINT `guardar_contactar_ibfk_1` FOREIGN KEY (`id_anuncio`) REFERENCES `articulo` (`idArticulo`) ON DELETE CASCADE ON UPDATE CASCADE; Estructura de tabla para la tabla `baneo` -- CREATE TABLE IF NOT EXISTS `baneo` ( `idban_contactar` int(8) NOT NULL, `fecha` date NOT NULL, `hora_ini` time NOT NULL, `hora_fin` time NOT NULL, `ip_ban` varchar(15) NOT NULL, `baneado` char(2) NOT NULL, KEY `idban_contactar` (`idban_contactar`), KEY `ip_ban` (`ip_ban`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Volcar la base de datos para la tabla `baneo` -- -- -- Filtros para las tablas descargadas (dump) -- -- -- Filtros para la tabla `baneo` -- ALTER TABLE `baneo` ADD CONSTRAINT `baneo_ibfk_1` FOREIGN KEY (`idban_contactar`) REFERENCES `guardar_contactar` (`id_contactar`) ON DELETE CASCADE ON UPDATE CASCADE; El campo id_anuncio hace referencia a otra tabla que no viene al caso, asi que se podría obviar. Por lo demás hay un pequeño captcha de sumas (muy sencillo) y utilizo funciones como Validarhacking (que controlan que el usuario no intentente meter caracteres prohibidos para evitar inyección sql), esSpam (que simplemente controla que no se metan palabras típicas de spam como viagra u otras) y getRealIP para sacar la ip del usuario. |
| |||
Respuesta: Restringir uso de pagina PHP Un ejemplo de como se rellenarían las tablas: Ver Imagen: http://s2.subirimagenes.com/otros/previo/thump_6988748enviosmail.jpg Aqui se registrarian las ips y otros datos de los usuarios que envian email usando el formulario. Vemos claramente que hay un usuario que ha realizado muchos envios en muy poco espacio de tiempo. Ver Imagen: http://s3.subirimagenes.com:81/otros/previo/thump_6988749tablabaneos.jpg Asi que saldría baneado como apreciamos en la tabla baneo. En concreto se le banearía por cinco minutos, aunque esto siempre lo podríamos modificar desde el código. De momento solo lo he probado en local y funciona. |
| ||||
Respuesta: Restringir uso de pagina PHP Wow Muchisimas gracias voy a ponermelo a estudiar a ver si saco algo, de momento he implementado recaptcha creo q hara mas fastidioso que quieran hacer varios registros xD de nuevo gracias por el code voy a comenzar a estudiarlo aparte que me gusta aprender de otros codes ![]() Salu2 ![]() |
| |||
Respuesta: Restringir uso de pagina PHP De nada (aunque como no lo copie entero se me olvido el <?php del princpio). Supongo que igual es un poco enrevesado. Seguro que se puede simplificar y afinar todavía más. Pero bueno, la idea fundamental si quieres controlar más en serio a los usuarios es crear dos tablas, una para guardar los logs de los envios y otra para apuntar los baneados. Luego cuando pase x tiempo (que tal y como esta escrito el código, aunque puede cambiar facilmente, pueden ser 5 minutos si ha realizado más de 7 envios en menos de cinco minutos o media hora si ha contado más de 25 intentos) se vuelve a levantar el ban. Lo primero que se hace siempre es selecionar los resgitros de la tabla baneo donde el campo benado se igual a si y comprobar si ha pasado el tiempo del ban (que viene recogido en el campo fecha y en campo hora), en ese caso se pone el campo de la tabla baneo en baneado=no y se le deja enviar, sino se sigue mateniendo baneado=si y se le echa. Lo único que los registros que vayan quedando viejos en las tablas habría que borrarlos a mano. Sería interesante hacer que se borrasen automáticamente pasado un tiempo para ahorrar espacio en disco. |
Etiquetas: |