Skip to content

Tag: PHP

¿Cuánto tardan PHP y MySQL en generar tu contenido en WordPress?

Viper007Bond comparte en su blog un pequeño fragmento de código que mejora el clásico código (del tema default) para saber cuanto tiempo le ha costado al servidor generar la página que estamos viendo. Esta mejora persigue como objetivo decirnos, además del tiempo, el porcentaje del mismo que han consumido PHP y MYSQL respectivamente.

1. Primer paso:

Añadimos el siguiente código al archivo functions.php de nuestro tema (también serviría hacerlo en el wp-config.php):

Sobreescribe funciones del núcleo de WordPress

¿Por qué sobreescribir en lugar de eliminar?

A primera vista, modificar los archivos del núcleo parece mucho más fácil que sobreescribir las funciones. Pero ¿qué harás cuando tengas que actualizar tu blog?. Más o menos cada dos meses salen nuevas versiones de WordPress, así que será un largo y aburrido trabajo de volver a modificar cada archivo del núcleo previamente modificado por ti.

Por suerte, hay una solución al problema. Las llamadas a las funciones de filtro de WordPress. Por ejemplo, cuando instalas una extensión de WordPress que modifica alguna función del núcleo de WordPress, puedes estar seguro de que esa extensión usa  un filtro.

Usando filtros

Como he dicho, un filtro puede usarse desde una extensión. Pero no necesariamente: También puedes usar uno en el archivo functions.php de tu tema. Si tu tema no tiene un archivo functions.php, podrías crearlo.

La función de filtro más común se llama add_filter():

add_filter('hook_name', 'your_filter', [priority], [accepted_args]);

5 errores habituales de desarrolladores web novatos

Cuando empiezas en el mundo del desarrollo web hay cosas que quizás puedes pasar por alto, pensando que no son importantes, pero no sólo lo son sino que además es muy fácil hacer las cosas bien desde el principio. A continuación puedes leer 5 errores típicos del desarrollo web con sus correspondientes soluciones para mejorar tus habilidades si estás empezado.

1. No llames a tus includes loquesea.inc

¿Por qué es una mala idea?: A menos que establezcas en el servidor que los archivos .inc sean tratados como archivos php, serán legibles simplemente cargándolos en el navegador. Algo que no es bueno si estamos hablando de archivos que incluyen el nombre de usuario y la contraseña de la base de datos.

Forma fácil de solucionarlo: Llama a tus includes *.inc.php o ponlos en una carpeta llamada includes, y nombralos como *.php

Forma alternativa de solucionarlo: Pon un archivo llamado .htaccess en el directorio donde están tus archivos .inc, y añade esta línea:

AddHandler application/x-httpd-php .inc

2. No des por hecho que como tu web es pequeña, no puede ser atacada por los crackers

¿Por qué es una mala idea?: Aunque ser atacado por crackers sería fruto de una cojunción unusual de eventos, para un sitio web es inevitable. Los bots existen con el único propósito de crackear sitios web para poder añadir redirecciones a malware o spam a la web.

Una vez construí una web  con ruby, simplemente una prueba para ver como funcionaba todo. Tenía un formulario de comentarios. No me preocupé de sanear la entrada, ya que no enlacé a esta web desde ningún sitio. Después de una semana había alrededor de 4000 comentarios, todos enlazando a spam. Afortunadamente no permití javascript en los comentarios, así que no había ninguna redirección maligna ni nada así, pero el tema está claro. Tu web será atacada.

Como solucionarlo: Lee acerca de los ataques por inyección de SQL o Cross Site Scripting (XSS). Usa la función de PHP mysql_real_escape_string para sanear todo lo que vayas a meter en la base de datos. No permitas etiquetas html en los datos que introduzcan tus usuarios. Intenta reventar tu web tú mismo.

Error open_basedir restriction in effect

Si instalas un plugin de WordPress (o cualquier script PHP) y durante su uso obtienes un error de este tipo:

Warning: main(): open_basedir restriction in effect. File(/ruta/completa/al/archivo/archivo.xyz) is not within the allowed path(s): (/ruta/completa/a/tmp) in /ruta/completa/al/plugin/archivoplugin.php on line 32

Se debe a un parámetro de configuración del servidor llamado open_basedir. Este parámetro, que se puede configurar en el archivo httpd.conf del servidor, tiene como objetivo limitar los archivos que el interprete de PHP para nuesto usuario está autorizado a abrir a los que estén dentro de un árbol de directorios concreto (y a las distintas rutas fuera del árbol que se autoricen).

Normalmente este parámetro se usa en servicios de hosting compartido como medida de precaución para que un usuario no pueda acceder mediante PHP a los archivos de otro. Por lo que teóricamente no debería molestarnos para hacer uso de nuestros propios archivos… pero en ocasiones un plugin (o nuestro propio código), puede necesitar acceso a determinados recursos compartidos que están fuera de nuestra ruta de usuario.

20 recursos para programadores de PHP

Hace no mucho se pedían en los comentarios de una de las entradas de este blog que se recomendaran páginas con recursos para PHP, así que cuando vi en Mashable un artículo recomendando 20 de estos, decidí colgar aquí la lista de recursos que proponían para quién pueda interesarle:

Canvas – Un entorno de desarrollo para PHP5 con la facilidad de uso como principal atractivo.

CakePHP – Un entorno de desarrollo PHP orientado a funcionar al estilo de Ruby on Rails.

CodeIgniter – Un entorno de desarrollo PHP pensando especialmente para páginas alojadas en servidores compartidos.

Coders4fun – Un blog sobre programación, incluye un montón de pequeños fragmentos de código PHP para ayudarte a aprender nuevos trucos.