Web 2.0 Tips

Icon

Consejos y trucos para el desarrollo y diseño de webs

Chuck Not Captcha; Pegandole una patada voladora a los spambots

Por si no saben, los captchas son sistemas de protección contra procesos automatizados, como los conocidos spam bots, una forma de validar que el que está realizando una acción es un humano y no un programa o bot, esto se logra pidiendo una acción que solo puede realizar un humano, como escribir ciertas letras que estan deformadas para que los sistemas de OTR no puedan leerlas, fondos aleatorios y efectos de  humo o rayas que confundan la identificación por software.

El problema de esto es que los sitemas de identificación para romper estos sistemas son cada vez mejores, asi que los captchas tienen que ser mejores, pero sin imposibilitar la lectura humana, realmente estos se vuelven cada vez mas molestos, asi que estan apareciendo formas alternativas, dificiles para los bots, pero mas “humanizadas”.

Leer este tip »


Limpiar string para fabricar urls “amigables” en PHP

Hoy por hoy no importa que nuestra web anda sin errores y rápida, también tiene que hacerlo sobre urls humanamente amigables. ¿Qué quiere decir esto? que en vez de:

http://nuestraweb.com/index.php?seccion=articles&id=323

Debemos tener algo así:

http://nuestraweb.com/articles/323-mi-first-notebook.html

Leer este tip »


[PHP] Arreglar XMLs con Entities errors con una expresión regular

Este es un tip corto, tenia que usar un XML y en algunos casos me tiraba error:

PHP Warning:  simplexml_load_string(): Entity: line 1: parser error : xmlParseEntityRef: no name in /home/exos/aver.php on line 8

Warning: simplexml_load_string(): Entity: line 1: parser error : xmlParseEntityRef: no name in /home/exos/aver.php on line 8
PHP Warning:  simplexml_load_string(): yBack</song><producer>Timbaland,J.Timberlake,Danja</producer><catalogNo>88175* & in /home/exos/aver.php on line 8

Warning: simplexml_load_string(): yBack</song><producer>Timbaland,J.Timberlake,Danja</producer><catalogNo>88175* & in /home/exos/aver.php on line 8
PHP Warning:  simplexml_load_string():                                                                                ^ in /home/exos/aver.php on line 8

Warning: simplexml_load_string():                                                                                ^ in /home/exos/aver.php on line 8

Esto es por que el SimpleXML de PHP no parsea el XML si tiene errores de entidades o formato, y es que muchos generan los XML’s a mano y no escapan bién estas entidades, una solucion que ofrece este formato es usar CDATA, que tiene una sintaxis asi:

<SuperTag>
      <subtag>
            <valor><![CDATA[Esto no hace falta que esté escapado & :-)  `'  " < />]]></valor>
      </subtag>
</SuperTag>

El objetivo de esta Expresión regular es simplemente aplicar un CDATA en todos los valores que no sean otros tags.

Leer este tip »


Basta de GD en PHP, a usar Imagick

La solución mas utilizada en PHP para el manejo de imagenes es sin duda GD, que viene instalada en la mayoria de servidores que soporten PHP, con esta librería se puede manipular imágenes o crearlas de fomrma censilla, pero hay una herramienta mas nueva, rápida y su implementación en PHP a diferencia de GD, es orientada a objetos, cosa que les alegrará a muchos. En fin basta de GD.

Leer este tip »


PNG transparentes con PHP y GD2

GD2 o GD versión 2 es una librería que usa PHP para trabajar imágenes, esta se usa normalmente para hacer miniaturas o thumbnails de fotos, poner marcas de agua o generar un texto a imagen. Ahora, suponiendo que necesitamos generar un PNG transparente (y transparencia en alpha), a la hora de crear la imagen GD y escribirle por encima esta el resultado terminará siendo los superpuesto (letras, dibujos, otra imagen) haciendo alpha sobre un fondo negro. Pero a no preocupar que tiene solución.

Leer este tip »


Separando la lógica de la vista (PHP)

Hoy necesitaba una clase en PHP que haga algo específico, y antes de hacerla de 0 pensé en buscar por ahí alguna que me adelante un poco de tiempo, y me pasó algo que hace bastante no me pasaba, leí código PHP ajeno, y realmente es una experiencia traumática.

PHP da una libertad de trabajo muy buena, lo que lo hace un lenguaje flexible y de fáciles soluciones para muchas cosas (otras no), y esa libertad, sumada a la popularidad y facilidad de aprendizaje del lenguaje hace que haya mucho código desastroso por la red, esta vez me voy a enfocar en algo, que es el mezclar la lógica con el html.

Leer este tip »


Cuidado con $_SERVER['HTTP_REFERER']

Bueno escribo este tip PHP por que es algo con los que todos nos topamos alguna vez, la variable global $_SERVER nos trae una serie de valores utiles a la hora de conseguir información de la conexión o el cliente al que estamos conectados, puede decirnos a que dominio nos estan visitando, desde que ip, con que navegador y etc.

El tema es que hay un indice de este array que suele causar problemas la referencia desde donde viene el pedido o el “HTTP_REFERER”.

Leer este tip »


Twitteando desde la API de Twitter

Actualización: Hace unos días twitter deshabilitó la autentificación simple, que es en lo que esto se basa, asi que este método ya no es válido, en breve estaré posteando como hacerlo desde ahora.

Como ya habrán visto la integración con las redes sociales son cada vez mas “necesarias” en la Web 2.0, por ejemplo en este mismisimo blog, cada vez que se escribe un articulo nuevo es twitteado y hay un listado de los seguidores de nustra cuenta de Tiwitter: @web20_tips, el viejo “recomendar por mail” ahora es reemplazado por “compartir en…” y etc.

Los que les traigo ahora es una forma muy facil para twittear algo automáticamente, de esta forma pueden hacer que sus aplicaciones interactuen con Twitter actualizando el estado.

Leer este tip »


Problemas con $_SERVER['SERVER_NAME'] y subdominios virtuales

Bueno, posteo esto porque es un problema que me ha pasado hoy, es un tip sencillo para PHP, un pequeño problema que alguno puede tener o cruzarse alguna vez.

El objetivo: Necesito que según el subdominio, un script se comporte de forma diferente, en mi server de prueba me hiba bien usando la variable global $_SERVER['SERVER_NAME'], pero cuando subo a producción, el script falla. Leer este tip »


Categoria

Haste fan

Web Analytics