PHP-Hispano.net Comunidad hispana de desarrollo web

Contacto | #php_para_torpes | Enlázanos | ¿Quiénes somos?

20 usuarios Online (0)

Darse de alta en la web | Recuperar password   

Sistema de agradecimiento con ajax - Versión 1

por hahahano Enviado 24 ago 09 63 descargas 10 comentarios Categoría Scripts

Éste script es un sistema escrito en PHP y Ajax, su función es colocar un botón u otra cosa para poder agradecer un artículo.
Es fácil de integrar con tu propio sistema, es simple y sencillo de entender.
Las instrucciones para integrarlo y/o instalarlo vienen en el archivo IMPORTANTE.txt
Las consultas SQL para instalarlo vienen en el archivo sql.sql
Está todo bien documentado, por lo que espero que se entienda bien.
Se puede ampliar si tenemos un sistema de usuarios propio, pero eso ya queda a gusto del dueño.

Comentarios

Avatar de Zubyc #10 Zubyc
27 ago 09
Hahahano, creo que has entendido mal la utilidad de usar constantes.
Una constante es un valor que no va a cambiar durante toda la ejecución de la aplicación.

Si realizas esto: define('ID_POST',$_GET['id']); /* Por ejemplo un GET id */, se pierde por completo el significado de constante ya que $_GET['id'] podrá ir cambiando de valor durante la ejecución.

Piensa en la utilidad de la constante como un valor que siempre es fijo para tu aplicación, pero que puede variar en función de dónde se ejecute. Por ponerte un ejemplo, una ruta a una carpeta donde se guardan imágenes se podría guardar como una constante: define('RUTA_IMG','/imagenes');
de forma que si un usuario guarda las imágenes en otra carpeta, pues simplemente modificará esa línea y todo funcionará perfectamente.

Lo que vengo a decir es que en tu caso, podrías usar una constante por ejemplo para definir el nombre de la cookie.
define('COOKIE_NAME','id')
¿Por qué utilizarlo para el nombre de la cookie? porque es posible que un usuario incluya este script en su aplicación y esté utilizando ese mismo nombre para otros propósitos, con lo cual habría un conflicto. En cambio, si le permites que modificando una sola línea, todo funcione bien, pues imagina la ventaja que supone.

Por otra parte, trata de separar siempre que puedas esos valores de configuración en un archivo diferente (config.php), o bien en la parte superior de donde está ahora, para que se vea bien. Piensa que cuando desarrollas algo, el que va a abrir tu script tiene un conocimiento que tiende a cero patatero, y así le facilitarás el camino.

Creo que tampoco vendría mal separar las funciones javascript en un archivo js externo para que quede el código más limpio.

Espero que todos estos comentarios te sean de ayuda, todo sea por mejorar ;)
Un saludo
Avatar de hahahano #9 hahahano
26 ago 09
Vale, idea aceptada xD, ya funciona con constantes.
Avatar de efnworkz #8 efnworkz
26 ago 09
estoy de acuerdo con Zubyc respecto a lo de las constantes
Avatar de Zubyc #7 Zubyc
25 ago 09
#6 Si hay posts que no puedes dar las gracias, eso ya es otra cosa. Puede que sea un bug, mañana le echaré un vistazo :)

Con respecto a lo de las constantes, el funcionamiento va a ser exactamente igual, lo único es queva a estar mejor organizado y su adaptación a cualquier web se realizará de manera más sencilla.
Avatar de hahahano #6 hahahano
24 ago 09
No si ya sé el funcionamiento, solo te digo que hay posts que no puedo dar las gracias, posts que no he agradecido nunca, me entiendes? xD
Bueno y por lo que dices de las constantes y eso, es que prefiero que lo adapten como quieran a su web, no sé, ya se verá si el script es aceptado.
Avatar de Zubyc #5 Zubyc
24 ago 09
hahahano, lo que ocurre en esta web es que un usuario sólo puede enviar un agradecimiento a otra persona por cada tema. Pero un usuario si puede ser agradecido por varias personas. Por eso una vez que envías un agradecimiento desaparece la opción.

En cuanto al script, un comentario. Si el propósito de este script es que cualquiera pueda usarlo y adaptarlo a su web no es recomendable que el usuario tenga que trastear líneas sueltas para hacerlo funcionar.
Lo ideal es tener un archivo de configuración donde almacenes valores ya sea con variables o constantes, donde aparezcan los nombres de las cookies o los datos de conexión o cualquier otro dato necesario para su funcionamiento.

Por lo demás bien ;)
saludoss
Avatar de hahahano #4 hahahano
24 ago 09
Lo de las COOKIES lo hago para que el usuario elija lo que quiere poner ahí para que busque al usuario.
Avatar de hahahano #3 hahahano
24 ago 09
Ya he arreglado el problema de escapar strings en la función registrarAgradecimiento y luego he validado los datos para registrarlos.
Avatar de davidesper #2 davidesper
24 ago 09
Ahí van algunas cosillas que he podido ver, por si sirven de algo. ;)

En el archivo index.php - Línea 15 Caracter 0, lo primero que habría que averiguar es si las claves "tId" y "uId" existen realmente y a continuación validar el valor de dichos elementos del Array en caso de existir. Lo primero puede hacerse con "isset", lo segundo depende de lo que necesitemos... pero en todo caso conviene validar cuanto nos llegue "desde fuera".

Además no sólo se trata de validar, pero, dos líneas más abajo en el mismo archivo (justo si se "entra" en la condición anterior) haces uso de la función "registrarAgradecimiento()" y en la misma puede verse que no se están escapando los valores de "$id_tema" e "$id_user", formando estos parte de la consulta SQL que se lleva a cabo: esto significa que, puesto que la entrada no se valida y no se escapa adecuadamente, es muy posible una "inyección SQL" que haga lo que no te esperes.

Otra cosa es que basas la unicidad del voto de los usuarios en una posible "cookie", pero, si no me equivoco, esto debería basarse al menos en la IP de los usuarios. Habrá clientes que no soporten "cookies", pero, es que estas son "falseables", por decirlo así. Creo que habría que guardar la IP de los usuarios en la base de datos, aunque, tampoco estoy del todo seguro: no sé si habría que tener otras cosas en cuenta además de la IP.

Sea como sea votaré positivo, porque, todo es mejorable y de todo se aprende... o al menos eso dicen. ¬¬
Avatar de hahahano #1 hahahano
24 ago 09
Alomejor a Zubyc le hiría bien, porque me he fijado en que cuando alguien agradece un post, éste ya no puede ser agradecido otra vez por otro usuario.
Para poder participar debes ser un usuario registrado de PHP-Hispano. :: Deseo darme de alta en esta comunidad ::
Login / Password   

Votación

Este archivo está siendo evaluado por la comunidad de PHP-Hispano.
Puedes colaborar enviando tu voto para que este archivo sea aceptado, o ayudando al autor a mejorarlo con sugerencias.

Descarga

Descargar versión
ZIP (9,54 KB)

Actualizaciones ( 3 )

Últimas actualizaciones

  • ...
  • Actualizado 26 ago 09
  • Actualizado 24 ago 09
  • Actualizado 24 ago 09

Características de la versión

Éste script es un sistema escrito en PHP y Ajax, su función es colocar un botón u otra cosa para poder agradecer un artículo.
Es fácil de integrar con tu propio sistema, es simple y sencillo de entender.
Las instrucciones para integrarlo y/o instalarlo vienen en el archivo IMPORTANTE.txt
Las consultas SQL para instalarlo vienen en el archivo sql.sql
Está todo bien documentado, por lo que espero que se entienda bien.
Se puede ampliar si tenemos un sistema de usuarios propio, pero eso ya queda a gusto del dueño.

Todas las versiones

  • No existe ninguna otra versión disponible

php-hispano.net 2002 - 2013 | XHTML 1.0
Datos Legales | Webmaster