domingo, 29 de noviembre de 2009

SignMe 2.0 - Segunda versión de mi libro de visitas en PHP

Finalmente después de bastante tiempo desde que saqué la anterior versión de mi libro de visitas en Php, aquí vuelvo con la segunda versión, la cual trae nuevas e importantes mejoras, y sobre todo, novedades:

  • Antes se podían enviar comentarios en blanco, ahora si alguien deja en blanco el campo del comentario (bien porque se le olvidó rellenarlo o bien porque quería molestar enviando a lo tonto), no podrá, ya que le saltará una alerta Javascript instándole a que rellene el campo del comentario para poder enviar el comentario.
  • Sistema de banneo por IP: esta es una de las grandes novedades de la nueva versión, por fin el Administrador podrá bannear Ip`s de usuarios que posteen comentarios indebidos. Ni que decir tiene que puede bannear tantas Ip`s como quiera.
¿Cómo bannear Ip`s?

¡Muy sencillo! En el archivo "ban.php" tenemos que localizar las siguientes línea:


$ban_ip = '00.000.00.000'; // ip banneada 1
$ban_ip = '11.111.11.111';//ip banneada 2 etc...


Pues bien, no hay mas que poner ahí la Ip o Ip`s que queramos bannear, una debajo de otra, tal y como se muestra. Por cierto, si le echais una ojeada al código, veréis que está comentado, lo cual espero que ayude bastante a comprender el código, junto con las explicaciones que doy en la entrada.

  • Sistema de Censura: otra opción nueva de esta versión, mediante la cual el Administrador puede definir una serie de palabras que, en caso de ser posteadas en los comentarios, serán automaticamente sustituidas por lo que el administrador quiera.

¿Cómo censurar palabras?

En el archivo "publicado.php" debemos localizar las siguientes líneas:


$cadena_cambiada = str_replace("pedo","********",$cadena);
$cadena_cambiada = str_replace("culo","******",$cadena);


Donde, como ya habréis adivinado, debemos poner la palabra a censurar, y luego la cadena por la que se sustituirá. En el script viene por defecto ya que las palabras 'pedo' y 'culo' se sustituyan por asteriscos. Para añadir más palabras censuradas no hay más que seguir añadiendo más líneas como las que se muestran ahí, como podéis ver, es algo extremadamente sencillo.

  • Sistema de Afiliación: otra opción nueva de esta versión 2.0, que consiste sencillamente en que el Administrador puede añadir una lista de sitios afiliados, para que los visitantes seleccionen una de las páginas afiliadas y la puedan visitar directamente haciendo click en el botón.

Al seleccionar la web que el visitante quiera, y pinchar en el botón "Visitar Web Seleccionada", será enviado directamente a la web elegida.

¿Cómo añadir webs afiliadas?

Esto si que es fácil. Localizamos en el archivo "index.php" el código de la tabla de afiliaciones y añadimos las webs que queramos, poniendo URL de la web y nombre de la web respectivamente.

  • Nueva página con las condiciones de uso del servicio (legal.html)
  • Nueva tabla de descarga, esto es, sencillamente una tabla que aparece en la parte inferior de la web en donde se le recuerda al usuario que si le gusta el sistema puede descargárselo para usarlo, y hay un enlace que lleva directamente a esta entrada en el blog, para que se descargue el sistema y el visitante tambien pueda tenerlo.

  • Ahora los enlaces han sido sustituidos por botones, lo que mejora notablemente el aspecto gráfico final.

  • Añadidos favicons a todas las páginas que componen el script, no solo a la primera como estaba antes.
  • Antes en el log de comentarios, quedaban registradas todas las Ip`s, tanto de gente que posteaba comentarios como de invitados que solo se pasaban a mirar, lo que ocasionaba un gran caos. Eso lo he eliminado, y ahora tan solo quedan los datos de los que postean, junto con el nick con el que han hecho el comentario, la fecha y la hora.
  • He eliminado el login de Administrador, ya que en realidad no era servicial ya que de momento no se podía hacer nada, solo salía un mensaje diciendo que estabas logueado (recordad la versión anterior), y pues por eso lo eliminé.
  • Añadido un relojito en la parte de arriba de la web, para saber siempre qué hora es :P
Además, aunque se supone que en teoría el archivo log.txt debería ser privado y solo visible por el Administrador tras loguearse, en realidad cualquier usuario podía acceder al archivo en cuestión desde la barra de direcciones, poniendo:

www.nombredelisitio.com/log.txt

Y por lo tanto ver toda la información privada, es decir, la información de los que han posteado.

Así que una de las primeras cosas que tendréis que hacer será, cuando tengais todo subido a vuestro hosting, ir al archivo publicado.php y modificar la siguiente línea:


$fff = fopen("log.txt","a");


Y cambiar log.txt por cualquier otro nombre que querais, que sea evidentemente dificil de adivinar, para que los visitantes no puedan acceder a su contenido.

El problema radica en que para impedir el acceso a ese archivo, necesitaría hacer uso de la técnica del archivo .htaccess, y como he usado Miarroba como hosting de pruebas para el script, Miarroba no permite ese tipo de archivo...por lo que, de momento, hay que "arreglar" eso del modo provisional que he dicho...

Para la próxima versión, tengo pensado crear un Panel de Administración, desde el que se pueda bannear, censurar palabras y todo lo que se puede hacer ahora, solo que se podrá hacer desde el Panel de Administración, y no habrá que andar modificando el código interno del script directamente.

Para la próxima versión también cambiaré el hosting que usaré para pruebas, para poder hacer lo del htaccess y que no sea necesario cambiar el nombre del log.

  • Por último también he añadido un poco más de vistosidad a la página que sale después de haber posteado un comentario, poniendole un par de iconos de exclamación que se mueven, recordándole al usuario leer las Condiciones de Uso del Servicio.


Bueno, creo que no me queda nada por añadir, así que finalmente os dejo lo más importante después de tanto rollo, la descarga ^^


Descarga SignMe2.0

¿Qué se puede modificar y qué no se puede modificar?

-No se puede modificar absolutamente ni una sola letra de la página de las condiciones de uso (legal.html)
-No se puede quitar o sustituir el enlace que lleva el script en la parte de abajo, ya que ese enlace lleva justamente a esta entrada en el blog.

Un saludo, y recordad, si encontráis algún fallo o lo que sea, no dudeis en reportármelo, bien dejándome un comentario aquí o por MP en alguno de los múltiples foros en los que estoy registrado (preferiblemente Elhacker.net)

No hay comentarios: