Short but sweet PHP codes

Thanks to @paviles for tweeting this page with code snippets to do some simple but nice stuff in PHP.

Having the right code snippet at the right time can definitely be a life saver for web developers. Today, I’ve compiled 10 really awesome PHP code snippets that will, I hope, be very helpful in your forthcomming developments. 10 super useful PHP snippets – CatsWhoCode.com

Top 10 WordPress hacks /via @cafenoirdesign

I don’t know if they’re actually the top 10 of all time, but this collection of WordPress hacks is very good!

Everywhere you look you will find articles that talk about the best new WordPress hacks of the year, or the latest hacks for the content management system, but with this article, I hope to show you what I think are the top WordPress hacks of all time, that still work with the popular and ever-growing content management system. Top 10 WordPress Hacks of All Time | Onextrapixel – Showcasing Web Treats Without A Hitch

Create your own PHP Twitter widget

Twitter status widgets are ten a penny, so why create your own? Because you can! Your own widget will always be more customizable than any off-the-shelf solution, and you’ll be the envy of your peers. We’ve also been asked by several readers for articles about the topic, and it’s a great introduction to PHP, REST APIs, JSON, regular expressions and Object Orientated Programming.How to Create Your Own Twitter Widget in PHP, Part 1

Como hacer que sendmail envíe los correos locales a otro servidor

Hoy tuve este problema con uno de nuestro servidores web. En este servidor tenemos nuestro nombre de dominio principal, por ejemplo dominio.com y felizmente responde a www.dominio.com y dominio.com cuando lo llaman por http. También manda correo usando sendmail.

Pero, para el servidor que recibe y procesa nuestro correo está en mail.dominio.com y es una computadora muy aparte, ni siquiera está en el mismo país que nuestro servidor web. Nuestro DNS está bien configurado y cada que alguien manda un mensaje a @dominio.com nos llega perfectamente.

Sin embargo, si queremos mandarnos correo desde un script php en nuestro servidor web, éste se va al vacío porque nuestro sendmail considera a @dominio.com como parte de nuestro mismo servidor y trata de entregar el correo localmente. Como el usuario no existe, pues falla y el correo nunca llega a donde tiene que ir (y aunque existiera, no lo va a ir a ver).

Para arreglar este problema hay que darle a entender a nuestro sendmail que realmente @dominio.com no le pertenece. No es culpa del pobre sendmail, nada más hace lo que le dicen y puede ser que le estemos dando mala información en uno o más de estos tres lados:

  1. El archivo /etc/mail/local-host-names
  2. El archivo /etc/hosts
  3. Que uno de los nombres o alias de la máquina local sea dominio.com

Los primeros dos son cuestión de abrir esos archivos de texto y editarlos para quitar las referencias al nombre de nuestro dominio. El tercero se arregla cambiando el nombre de nuestra máquina con el comando hostname. Así:

hostname www.dominio.com

Reinicia sendmail y comprueba que no está considerando tu dominio como local haciendo:

echo '$=w' | sendmail -bt

Si dominio.com no aparece en la lista, ¡lo has logrado! Aunque no está de más hacer un script de prueba por si las dudas.

Si usas el plugin de comentarios Disqus

Si usas WordPress y la versión 2.42 de Disqus tal vez hayas notado que no ves los comentarios y tampoco se ve el tema completo de tu blog.

Esto es porque hay un error en la línea 32 del archivo comments.php de ese plugin. Si eres un poco ducho con el editor de textos y tienes acceso mediante ftp al servidor de tu sitio simplemente es cosa de editar ese archivo y donde dice:

<?

poner:

<?php

¡Nada más! Es una de esas cosas tipo “¡chale! se me olvidaron las comillas” que luego son difíciles de encontrar.

El cambio también lo puedes hacer a través del mismo WordPress usando la opción Plugins > Editor y después seleccionando Disques Comments System y el archivo comments.php. Pero es más fácil con un editor de texto, por lo menos tiene los números de línea.

En lo que el equipo de Disqus lo arregla por lo menos tienes una solución fácil para recuperar tus comentarios.

La verdad yo ni cuenta me había dado hasta que un compañero de trabajo (donde sí usamos disqus) me lo hizo notar.

Como proteger tus sesiones contra ataques

Through the use of sessions your identity is maintained as you use a website, and just as in real life identity theft is a concern. By taking over your session an attacker would essentially become you on a website, with access to all of the actions, information and privileges that entails.Carsonified » How to Create Bulletproof Sessions

Generalmente usamos sesiones en php para mantener información privada y otorgar cierta protección. Sin embargo la información de las sesiones se puede robar, lo cual dejaría al sitio, a los usuarios y a ti muy vulnerables. Este artículo de ThinkVitamin te dice como hacer más seguro el manejo de sesiones.

Instalando php en Vista de 64 bits

El fin de semana pasado por fin me puse a reinstalar en mi nueva computadora de casa lo que necesito regularmente para desarrollar sitios. Como es una computadora con Vista Home Premium de 64 bits empecé instalando IIS7 (que ya viene de paquete), MySQL, SQL Server Express y esas cosas.

Lo que dejé para lo último fue php. La última vez que instalé php fue en una XP x64 (mi sistema anterior, que ahora está en la oficina) y fue un merequetengue encontrar los binarios de 64 bits para que IIS no hiciera panchos. Tal vez podría hacer lo mismo, pero es una versión no oficial y desactualizada de php.

Después de algunas búsquedas y leídas en blogs, parecía que instalar php en una computadora con Vista de 64 bits era todavía más merequetengoso. ¡Pero cuál sería mi sorpresa cuando entro al sitio de descargas de php.net y encuentro que tienen versiones compiladas con Visual Studio 2008! Eso quiere decir que los binarios que dicen VC9 son compatibles con Vista de 32 y 64 bits.

Así que descargué el archivo con instalador (soy flojo) y, en efecto, en unos cuantos minutos php quedó instalado. Le hice las modificaciones de rigor a php.ini (para reportar errores, advertencias y todas esas cosas útiles en un sistema de desarrollo) y ¡listo!

Es un muy buen resultado de la apertura de Microsoft hacia el código abierto y de su búsqueda por tomar mercado de Apache y Linux. La competencia es buena, a fin de cuentas.

Ya sé, ya sé. Podría haber instalado Linux (mi distro favorita es OpenSUSE) en una partición, pero el caso es que me choca tener dos instalaciones en mi computadora casera, también quiero retomar / aprender .net y echarle un ojo a Visual Web Developer para ver que tal.

¿Qué tipo de sistema usas para desarrollo?

Construyendo aplicaciones con CodeIgniter

Over the last couple of years I’ve come up with a pretty solid structure and set of files that I use whenever I’m building a new app and in this series I’m going to show you what I do so you can get ideas for your own apps.Building Applications using CodeIgniter (Part 1) – File Structure | Chris Monnat

Muy buena serie de Chris Monnat para aprender a hacer una aplicación usando CodeIgniter, un framework para PHP.