Tips (Preguntas frecuentes)

Saber si un numero es par con PHP

Si bien el codigo es en php, es aplicable sin grandes cambios a otros lenguajes.

a

Activar telnet en Windows 7 / Vista

Telnet (TELecommunication NETwork) es el nombre de un protocolo de red (y del programa informático que implementa el cliente), que sirve para acceder mediante una red a otra máquina, para manejarla remotamente como si estuviéramos sentados delante de ella. Para que la conexión funcione, como en todos los servicios de Internet, la máquina a la que se acceda debe tener un programa especial que reciba y gestione las conexiones.

Windows 7 y Vista traen este comando deshabilitado por defecto. Por suerte es muy simple activarlo:

  1. Primero debemos hacer click sobre Inicio > Panel de control.
  2. Allí ingresamos a Programas y elegimos “Programas y características”
  3. Hacemos click en “Activar o desactivar las características de Windows”
  4. En el menú desplegable, tildamos la opción “Cliente Telnet” y aceptamos para guardar los cambios.

Eso es todo. Luego de esto deberíaspoder acceder sin problemas.

a

 

a

 

Forzar descargas con PHP

La idea de este tip, es explicar como hacer que cualquier tipo de archivo (siempre que se tengan permisos de lectura sobre el mismo ) sea descargable. Es muy sencillo y sólo consta de unas pocas lineas de código.

a

Creamos un archivo que contenga el código arriba descripto, lo guardamos, y, para probar si funciona podemos hacer lo siguiente:

Llamamos el archivo, a modo de ejemplo, “descarga.php”. Creamos un archivo html, al que llamamos “ejemplo.html”, que contenga un “Hola mundo!”.

Ahora bien, ubicamos los dos archivos dentro del mismo directorio y llamamos a descarga.php de la siguiente forma (suponiendo que ambos archivos esten en el raiz de nuestro servidor local):

http://localhost/descarga.php?file=ejemplo.html

De este modo podremos descargar “ejemplo.html”. Cabe aclarar que esto es aplicable a cualquier tipo de archivo, siempre teniendo en cuenta que debemos tener permisos de lectura al menos sobre el mismo.

Busquedas con PHP y MYSQL, usando MATCH y no LIKE

Las búsquedas te tardan mucho? Seguramente estas usando algo como:

a

Una forma un poco mejor (y mas rápida) de hacer lo mismo es la siguiente:

a

Y si quisiéramos buscar en más de un campo, tambien es fácil agregarlos:

a

Consejos para elegir un buen dominio.

¿Cómo elegir un buen dominio para mi página Web? El nombre del dominio de su Web es el centro de su identidad en Internet. Conozca los parámetros y sugerencias que deberá tomar en cuenta para escoger el nombre que mejor represente su negocio Web en la red.

Resumen: El nombre de dominio debe ser memorizable y relacionable con nuestro proyecto Web

Nombres cortos son más fáciles de recordar que nombres largos

El nombre de la extensión (.com, .es, .net) dependerá del ámbito geográfico de oferta de nuestros productos y servicios.

Una de las primeras decisiones que se toman a la hora de desarrollar un proyecto Web consiste en elegir un adecuado nombre de dominio para el sitio Web. El dominio será la marca con la que nos representaremos en la red. Elegir a la ligera un nombre de dominio puede traernos fracasos futuros en la estrategia de promoción de un site. Para ello debemos tomar en cuenta ciertos factores que harán que nuestra Web siempre se encuentre en el “short list” de nuestros potenciales clientes.

Un nombre de dominio que represente lo que soy Elegir el nombre adecuado para una página Web es un proceso similar al de crear el nombre de una marca. Debemos partir de entender perfectamente nuestra empresa o proyecto.

¿Quién es nuestro público objetivo? ¿Cuál es el objetivo de nuestra Web? ¿Qué tiene mi Web que no tiene la Web de la competencia? ¿Cuál es la visión y misión de mi proyecto Web? etc. Son algunas de las preguntas que nos ayudarán a confeccionar una tormenta de ideas que derivará en un listado preliminar de nombres de dominio. Una vez obtenida esta lista provisional, iremos descartando aquellos nombres de dominio que no cumplen ciertos factores de eficiencia. Para eliminar alternativas no viables de nombres de dominio le sugerimos seguir estas recomendaciones:

Nombres de dominio: ¿Largos o cortos? A pesar de que muchos portales de registro de dominios permiten un máximo de 63 caracteres, no trate de que su nombre de dominio se acerque a semejante longitud de caracteres. Como una buena marca, un nombre de dominio debe ser fácilmente memorizable. Por dicha razón funcionan mejor los dominios cortos que los largos. Además cuanto más largo es un dominio, más probabilidades hay de que se produzca un error mientras un potencial cliente lo escribe.

Trate de elegir el nombre de dominio más corto que sus clientes y visitantes podrían asociar con su negocio. Se aconseja que el nombre de dominio se encuentre por debajo de 7 caracteres si es posible.

Existen nombres largos que pueden ser recordados con facilidad. Normalmente son nombres de dominio representados por frases sencillas y fáciles de memorizar. Por ejemplo un nombre de dominio como “www.mujeresemprendedoras.com” es largo pero fácilmente recordable.

Dominios que se posicionan bien en los buscadores El nombre del dominio puede convertirse en un aliado a la hora de situar su portal Web en las primeras posiciones de los buscadores. Los algoritmos de los motores de búsqueda toman en cuenta (además de otros factores) el nombre del dominio para situar una determinada página en el ranking de sus resultados.

Por ejemplo, si usted se dedica a vender calcetines para diabéticos y el nombre de su dominio es “www.calcetinesdiabeticos.com”, esto sumará un punto más para que su sitio Web salga listado en los primeros puestos de los buscadores para la frase de búsqueda “calcetines diabéticos”

Recuerde que solamente tiene un dominio por lo que podrá competir con fuerza para un sólo concepto clave de búsqueda. Analice cuál es la expresión que mejor resume su actividad y pruebe si la puede colocar como nombre de dominio.

Caracteres no recomendados en el nombre de un dominio: existes ciertos nombres de dominios que a pesar de ser cortos son difíciles de recordar ya que la combinación de letras no es familiar para el vocabulario de los potenciales clientes. Por ejemplo, un dominio “www.pwxtw.com” es corto pero muy difícil de recordar ya que contiene una combinación de letras poco usada en nuestro vocabulario.

También es conveniente evitar los números en el dominio. Siempre que tengamos que decirlo oralmente, tendremos que especificar si nos referimos al número o bien a la palabra. Por ejemplo, si tengo el dominio “www.rebajas12.com” tendré que especificar si se refiere a “www.rebajas12.com” o a “www.rebajasdoce.com”.

También se recomienda no utilizar guiones medios y bajos. Es fácil olvidarse de los guiones cuando escribimos el nombre de un dominio. También es difícil recordar qué tipo de guión es el que lleva el nombre de un determinado dominio. Igualmente resulta engorroso leer o dictar un dominio con varios guiones.

Evite emplear abreviaturas. El uso de cualquier modo de contracción resultará en un dominio poco memorizable y difícilmente relacionable con su negocio o actividad concreta.

Pruebe escribir en el teclado el nombre del dominio que eligió preliminarmente. Analice si es sencillo de teclear y que no existe probabilidades de equivocarse al escribirlo. Igualmente pruebe leerlo en voz alta y analice si es sencillo memorizarlo.

Buscando la extensión adecuada: ¿com, net, es, org, etc.? Los dominios .com al día de hoy son los más fáciles de recordar y más utilizados por defecto por los internautas. En caso de que no pueda registrar la extensión .com, existe la extensión .net que también es fácilmente recordable.

En el caso de que el ámbito de su negocio sólo abarque un país, recomendamos también optar por dominios con extensión de país (ccTLD: country code top level domain) tales como .es, .oc.uk, o .fr. A nivel de buscadores el tener una extensión de un país determinado hace que nuestro portal salga en mejores posiciones para búsquedas geolocalizadas.

Otras recomendaciones: Si su nombre de dominio es difícil de escribir registre los nombres de dominio relacionados con los errores típicos que se cometen cuando se escribe el nombre del dominio de su portal. Redireccione los dominios adicionales al dominio principal. De esta forma se asegura que aquellos internautas que escriben con ligeros errores su nombre de dominio lleguen a su site.

Su nombre de dominio debería ser el nombre de la página Web. Parece obvio este consejo pero se sorprendería de la gran cantidad de casos donde no coincide el nombre del portal con el nombre específico del dominio.

Si el nombre de su dominio es un plural, lo recomendable es también registrar el singular y redireccionarlo. Es posible que varios de sus potenciales clientes escriban el nombre del dominio en singular cuando están buscando su sitio Web.

Actualizar el navegador del visitante

Esto puede resultar muy útil, y se puede realizar muy fácilmente por medio de javascript, de la siguiente forma:

a

Puntos a tener en cuenta para optimizar tu sitio y lograr un mejor rendimiento (Parte 1)

Antes que nada vamos a dejar en claro que optimizar un sitio web para un rendimiento eficiente depende de varios factores y requiere de un conocimiento intermedio en lenguajes y tecnologías web. O paciencia y buena predisposición para aprender 😉

Primero vamos a ocuparnos de verificar cuántos requests hace nuestra página, y el tamaño de los elementos que carga. Las herramientas fundamentales para revisar estos aspectos:

  • Mozilla Firefox
  • Con el navegador instalado, las extensiones Firebug, Yslow, Pagespeed y Web Developer Toolbar (podés descargarlas o instalarlas desde Firefox > Herramientas > Complementos > Obtener complementos).

Bien, ya con estas herramientas instaladas en Firefox, podemos tener una idea de cuán optimizado está el sitio en función de la cantidad de elementos que carga. Vamos por pasos:

  • Abrimos el navegador y desactivamos el caché del navegador utilizando la Web Developer Toolbar.
a
  • Vamos a nuestro sitio
  • Habilitamos Firebug , maximizamos dicha herramienta y seleccionamos desde el menú Red > Todo
a
  • Recargamos la pagina, dejando la ventana de Firebug abierta.
  • Verificamos los resultados obtenidos de acuerdo a la siguiente información:

Url: Nos proporciona datos sobre el pedido http, encabezados del mismo y de la respuesta del servidor que procesó el pedido.
Estado: Resultado del pedido (Código + Estado). Para verificar el significado de los distintos códigos de respuesta del servidor, podés verificar este enlace.
Dominio: Dominio desde el cuál se descarga el contenido. Esto es muy importante, dado que muchos plugins actualmente solicitan datos a otros servicios web (Facebook, Twitter, weather.com, etc) aumentando el número de elementos a cargar por sitio y como consecuencia de esto, el tiempo de carga del mismo. Tené en cuenta que, si cada elemento solicita datos de otro sevicio web, al tiempo de carga neto de tu página se le va a sumar el tiempo de carga de dichos elementos. Este último siempre va a depender de la rapidez de respuesta del servicio solicitado, y no de tu hosting.
Tamaño: Tamaño del elemento solicitado. Otro factor importante a tener en cuenta al evaluar los tiempos de carga del sitio. A mayor tamaño de los elementos de la página, más se encarecen los tiempos de carga de la misma.
Línea de tiempo: Nos brinda información referida a tiempos de carga del elemento, pasando el cursor sobre la línea de tiempo obtenemos información detallada sobre la composición del tiempo registrado.
Resúmen: Debajo del total de elementos cargados, obtenemos información sobre cantidad de pedidos, total de kb cargados por la página (si volvemos a habilitar la opción desactivada en el punto 1 y recargamos el sitio, veremos el total cargado desde el caché del navegador) y tiempo total de carga.

Esta información nos es de gran utilidad para detectar puntos a optimizar en nuestro sitio y evaluar el impacto sobre los tiempos de carga de nuevas funcionalidades que se agreguen al mismo.

Yslow y Pagespeed

Estos plugins de Firebug elaboran una calificación para nuestro sitio en base al análisis de los distintos factores que intervienen en la respuesta del sitio “del lado del cliente”. Estos son, todos los elementos que el visitante del sitio “descarga” al ingresar al mismo y no incluye la gestión sobre las bases de datos (la cuál verificaremos en la segunda parte).
Son más que interesantes las herramientas que nos ofrece Yslow ingresando en la pestaña Tools disponible desde el menú, entre las que se incluyen varios servicios de optimizadores y compresores de archivos .css y .js y la opción de ejecutar con un solo click una mejora respecto al tamaño de las imágenes del sitio (incluso podemos descargarlas ya optimizadas) utilzando la web de Smush.it .

a

Te recomendamos instalar estas herramientas y comprobar la calificación otorgada para tu sitio así como los consejos para pulir todos los aspectos involucrados a fin de lograr una óptima performance. Por cualquier duda sobre su uso, podés verificar la ayuda en línea para las mismas disponible en:

  • http://developer.yahoo.com/yslow/help/
  • http://code.google.com/intl/es-ES/speed/page-speed/
Puntos a tener en cuenta para optimizar tu sitio y lograr un mejor rendimiento (Parte 2 - mysql)

Seguimos repasando los aspectos que hay que tener en cuenta a la hora de evaluar la velocidad en la respuesta de un sitio. En este artículo vamos a ocuparnos de la optimización de la base de datos de la aplicación. Los consejos de este artículo están basados en la información disponible en el siguiente enlace (el cuál recomendamos).

Los tiempos de respuesta de un sitio se van a ver afectados entre otros factores por la velocidad con la que se ejecuten las consultas mysql. Desde ya, recorrer con una consulta una base de datos de 10 MB no es lo mismo que hacerlo en una de 2 GB. Tampoco es lo mismo ejecutar un SELECT de todos los campos de la tabla que solamente consultar aquellos con los que voy a trabajar.

El diseño inicial de la base de datos es fundamental, más aún si sabemos que vamos a cargar gran cantidad de datos a la misma. Te recomendamos investigar los modelos de bases de datos relacionales si estás diseñando tu app desde cero. Acá algunos consejos generales para optimizar las consultas (y como consecuencia de esto los tiempo de respuesta). Este tipo de tareas puede ejecutarse desde el administrador de bases de datos del panel o desde un gestor mysql remoto.

  • Verificá regularmente el registro de consultas lentas del panel de control para identificar aquellas que deben ser optimizadas
  • Usar el comando EXPLAIN para ver como se ejecuta un SELECT. Esto es muy útil a fin de optimizar dicha consulta.
  • Ej: EXPLAIN SELECT * from nombredetabla
  • Ejecutar OPTIMIZE TABLE si se han hecho cambios en la misma. Este comando la repara y desfragmenta las tablas, sobre todo si se han eliminado datos recientemente.
  • Almacená las imágenes u otros archivos dentro del directorio web, no en la base de datos.
  • No uses nombres complejos para las columnas. Por ejemplo: En la tabla clientes, usá “nombre” en vez de “nombre_cliente” para almacenar el nombre del cliente.
  • Definir una longitud para los campos siempre que sea posible. Los campos con longitud fija (CHAR) son más rápidos que los de longitud variable (VARCHAR).
  • Optimizando INSERT:

– Usar INSERT DELAYED cuando no sea necesario conocer si los datos han sido escritos correctemente. Con esto obtenemos una confirmación inmediata del servidor, mientras que el dato es almacenado en una cola para ser insertado luego (cuando la tabla no esté en uso).
– Usá INSERT LOW_PRIORITY para darle prioridad a las consultas SELECT
– Hacer múltiples INSERT en una sola consulta es preferible a hacer varios INSERT distintos.
Ej: INSERT INTO table (col1, col2) VALUES (‘value1’, 1), (‘value2’, 2), (‘value3’, 3)

  • Optimizar WHERE:

– Remover paréntesis innecesarios.
– Usar SELECT COUNT(*) siempre que consultemos una sola tabla y no necesitemos agregar WHERE

  • Optimizando SELECT:

– Realizá la consulta solo por los campos que necesitás (no uses SELECT * si no es necesario)
– Agregá índices a las tablas sobre las cuáles utilizás SELECT…WHERE

Si utilizás un CMS (Joomla, WordPress, Oscommerce, Drupal, etc)

Tené en cuenta que cada plugin / componente que agregás representa un aumento de tablas en tu base de datos y por consiguiente, de consultas a la misma. Instalar agregados a tu CMS sin analizar previamente como funcionan y si realmente son necesarios, seguramente genere latencia adicional en el acceso al sitio.
A continuación, un resúmen de herrramientas útililes para optimizar tu sitio

WordPress

Joomla

Podés usar el servicio de Google Traductor para traducir los enlaces referidos

¿Cómo implementar seguridad en el FTP?

¿Tuviste algún problema de seguridad en tu sitio? ¿Te hackearon la página? ¿Querés saber qué medidas podés tomar para evitarlos? Acá te pasamos algunas sugerencias.

La seguridad se da del lado del servidor y del usuario. Del lado de TEHUENTEC te contamos que todos nuestros servicios tienen un servicio de antivirus que revisa en tiempo real cada archivo que subís a tu FTP, detecta si hay alguno infectado y llegado el caso, te prohibe la subida. Pero, ¿qué pasa si el virus no es un archivo en sí mismo sino que es una parte del código dentro de un archivo html o php?

Existe una gran cantidad de virus más complejos que se alojan en las PC y aguardan que el usuario se conecte a su FTP. Cuando el usuario se conecta, el virus puede:

  • Modificar el código de todos los archivos del FTP
  • Robar los datos de acceso (si los guardás para que tu cliente FTP los escriba automáticamente cada vez que te conectás) y después inyectar fragmentos de código destinado a ejecutar diversos procesos maliciosos: desde enviar Spam hasta redirigir a usuarios a sitios de terceros sin su consentimiento.

Estos virus son muy difíciles de detectar para el antivirus del servidor porque los fragmentos de código son órdenes típicas de programación o bien utiliza fragmentos encriptados. Si la computadora del administrador del sitio está infectada, probablemente el virus se esté ejecutando cada vez que se conecta a su FTP. ¿Qué hacer para resolver este problema?

  • Revisá regularmente tu computadora con un antivirus actualizado
  • Evitá guardar las claves de tu FTP en los programas FTP.
  • Ingresá las claves a mano cada vez que te conectes. (Filezilla por ejemplo te permite configurar el ingreso de manera que siempre te pregunte la contraseña)
  • Instalá las últimas actualizaciones de seguridad para aplicaciones como Joomla, WordPress, OSCommerce, Drupal, etcétera.
  • Revisá los permisos de las carpetas de tu sitio: así como las carpetas y archivos de Windows tienen permisos (el famoso “Solo lectura” que te permite sólo leer sin modificar) en Linux también podes activar tres tipos de permisos: Leer, Escribir y Ejecutar. Vos podés definirlos en tu FTP de manera de evitar dar permisos ampliados.
  • Limitá los accesos remotos a tu FTP. Cada usuario FTP que creas es una nueva puerta de entrada a tus archivos desde equipos remotos que pueden ser no seguros: en esas operaciones tus colaboradores sin saberlo pueden estar subiendo malwares que afecten a tu sitio.
¿Cómo redireccionar hacia otro sitio vía programación?

Hay varias formas de redireccionar hacia otro dominio utilizando código. A continuación explicamos algunas de ellas:

HTML
Usando el tag podemos redireccionar de forma sencilla a otro sitio. Recordemos que la etiqueta debe ir siempre dentro de en nuestro documento html. Un ejemplo de uso sería el siguiente:

a

Vamos a ver un ejemplo “real” a continuación (podés setear a 0 el tiempo para que redireccione sin aviso):

a

PHP
Insertar el siguiente código al principio del archivo index.php para redireccionar en este caso al sitio http://www.tehuentec.com (cambialo por la url que corresponda)

a

Configurar permisos seguros en carpetas y archivos usando Filezilla

Mantener permisos seguros de acceso en carpetas y archivos de nuestro sitio es fundamental para evitar inyecciones de código vía web. Vamos a ver como realizar esto de manera sencilla usando Filezilla, uno de los clientes FTP más populares. Si no sabés como configurar la conexión FTP vía Filezilla, verificá este tutorial:

¿Como tengo que hacer para subir mi pagina web?.

Una vez conectados a nuestro FTP, nos movemos hacia la mitad derecha de la pantalla (directorio remoto) y hacemos click derecho sobre la carpeta a la cuál apunta nuestro dominio (por defecto /htdocs). Luego configuramos las opciones tal como muestra las imágenes a continuación:

a

a

 

Luego, para aplicar permisos seguros a archivos hacemos click derecho nuevamente sobre el directorio al cuál apunta el dominio y copiamos la configuración de la siguiente imagen:

a

Otro enlace recomendado con tips de seguridad en conexiones FTP disponible acá:

¿Cómo implementar seguridad en el FTP? (ver arriba)