Función Para crear slugs o URL amigables
Con el incremento y enfasis en el SEO y Posicionamiento WEB como una herramienta muy util para las empresas, el uso de URL amigables o Slugs se esta volviendo practicamente la regla y no la excepción. La implementación de URL Amigables cuando se trabaja con sistemas enlatados como WordPress se puede hacer facilmente a travez de plugins como el All-in-one-SEO.
Leer Más
Generar archivo PDF con PHP
Un tiempo atras en un proyecto me tocó exportar reportes a Excel, PDF, generar gráfico, etc. Para la parte de exportación a PDF, revise varios modulos que pense que serian de utilidad, sin embargo al tratar de usar PDFLib, pero no logre hacer mucho ya que cuando me toco generar tablas, se me fue dificil darles formato, hacer merge de las celdas y cambiar fuentes, etc. Quizas sea la falta de experiencia en cuanto al uso de dicha libreria, pero buscando un poco en la web, encontre un modulo llamado HTML2PDF.
HTML2PDF permite crear páginas en version HTML4 y genera los PDF a partir de ellas, asi que en mi caso solo me tocó generarl un archivo html validado para HTML4 y luego pasarselo al modulo HTML2PDF y este hizo todo el trabajo. Este modulo acepta el uso de estilos definidos via CSS o bien via style en la mismo archivo HTML.
La insercion de imagenes es igual de facil, asi que con este módulo me ahorre mucho tiempo ya que las tables ya eran generadas por mi php, y solo me toco pasarle el mismo codigo a mi clase generadora de PDF y listo. Realmente funciona bien, ahorra tiempo y es facil de usar.
De igual forma en la pagina de HTML2PDF hay una buena cantidad de ejemplos los cuales sirven para orientarse, y ver como logran hacer merge de celdas, insertar imagenes, muchas otras cosas dentro de los PDF.
A mi parecer es una herramienta que vale la pena darle una revisada, en mi caso me salvó la vida de leer y tratar de crear las tablas con PDFlib y otras librerias que probé anteriormente.
Migrar MySQL a MSSQL (Microsoft SQL Server)
Recientemente en un proyecto me tocó migrar una base de datos en MySQL de tamaño considerable a Microsoft SQL Server (MSSQL). Inicialmente no sabia por donde inciar, probe hacer via CSV, generando un archivo sql y ejecutandolo en el servidor, y tampoco. Luego de buscar un poco en google y otros sitios encontre la solción. SQL Server Migration Assistan version 2005 para SQL server 2005 y la version 2008 para SQL Server 2008. El SQL Migration Assistan esta disponible para otras motores de bases de datos como Oracle, Access, Sybase; así que si necesita migrar cualquiera de esos motres a SQL Server, el Migration Assistan le será de gran ayuda.
Al hacer pruebas encontre que era de gran utilidad ya que este te permite navegar tu tanto tu servidor MySQL como SQL Server, es necesario que la base de datos de MySQL tenga el mismo nombre que la de SQL Server, o por lo menos no logré encontrar como hacerla trabajar con bases de datos con nombres diferentes.
Una vez conectado al servidor de MySQL podras elegir la base de datos que desees exportar, y crear un mapa de MySQL a SQL Server, SQL Server Migration Assitant ya por defecto mapea algunos tipos de datos, sin embargo uno puedeo modifcar esos datos en la pestaña de Type Mapping. En mi caso me tuve que modificar parte del mapeo de datos ya que algunos datos tipo varchar de MySQL me los converitiá en nchar en SQL Server y como char siempre tiene el mismo largo, esto me causo algunos problemas. Asi que en el caso de ustedes tengan mucho cuidado con el mapeo de los datos, puede que les pase lo mismo.
Luego cuando es sincronizacion por primera vez, este SQL Migration Assitant, re-escribe los datos que se encuentra en la base de datos SQL, y crea las tablas si no existen. Si tienen datos ya existentes en el servidor SQL, tengan cuidado con los ID a migrar. De igual forma el asistente de migracion de SQL, le permite seleccionar tablas a sincronizar y y que si quiere sincronizar de MySQL a SQL server vicer-versa o ambos.
Realmente es una herramienta que vale la pena probarla. Si estan en proceso de migrar un sistema que utilizaba MySQL a SQL Server, esta es una muy buena opcion y realmente la migracion la hace bien rapido. Se las recomiendo. A mi me salvo horas de trabajo.
Validar varios formulario con javascript utilizando jquery
Por lo general la forma mas facil de validar un formulario es a traves de Macromadia DreamWaver utilizando Tag Inspector >> Behaviors.
Sin embargo cuando se tienen varios formularios con los mismos campos con los mismo nombres, dreamweaver falla al validar ya que este le asigna un ID a cada campo y luego al validarlos este los valida usando document.getElementById(‘NOMBRE_DEL_CAMPO’) por lo que al existir mas de un campo con el mismo ID esto complica todo. Mucho mas cuando son campos que se estan generando a traves de un ciclo en php o algun otro lenguage web.
Buscando un poco en la web encontre un pulgin para jquery el cual permite que a travez de jquery uno pueda llevar a cabo distintos tipos de validaciones sobre un formulario. esta realmente bien bueno. El plugin se llama Validation y puede ser encontrado en esta pagina.
http://bassistance.de/jquery-plugins/jquery-plugin-validation/
Esto solo requiere importar los js dentro de la pagian donde se encuentran los formularios y asignarle una clase a todos los formularios y un ID unico a cada formulario.
Luego solo necesitara algo como este codigo para poder validar su formulario:
<script>
<!–
$().ready(function() {
// desde aqui se repite para cada formulario
$(“#ID_formulario_1″).validate({
rules: {
name: { // nombre del campo
required: true, // aplicar validacion
minlength: 2 // reglas de la validacion
},
country: {
required: true,
minlength: 2
}
},
messages: { // Mensajes de error
name: { // Nombre del campo
required: “Please enter a Name” // Mensaje de error
},
country: {
required: “Please enter a Country”
}
}
});
// hasta aqui se repite para cada formulario
});
</script>
Listo con esto ya estara validando sus formularios.
Saludos.
Mejorar la segurida de php
Muchas de las personas que utilizamos arquitecturas LAMP (Linux, Apache, MySQL, PHP) y corremos nuestros propios servers o estamos a cargo de algun servidor de hosting, siempre es necesario estar al tanto de la seguridad de del mismo y amarrar la seguridad lo mas que se pueda.
Por lo que uno de estos dias me encontre con un script php que se puede instalar en el servidor y este se encarga de verificar gran parte de configuraciones de PHP que podrian abrir puertas o que son puntos de ataques para servidores LAMP. Este Script se llama PHPSECINFO y puede ser obtenido en:
http://phpsec.org/projects/phpsecinfo/
Una vez instalado en el servidor este genera un reprote, el cual sirve como una buena referencia de puntos que pueden o deberian de ser revisados en la configuracion de su instalacion de PHP. Quizas esto no sea la maxima autoridad para una buena configuracion de PHP pero por lo menos sirve de guia ya que para cada uno de las alertas o errores este brinda un enlace del porque lo marca como un problema de seguridad y depende del administrador del servidor seguir o no el consejo.
Saludos.
Copiar tablas en MySQL
Hace pocos dias necesitaba copiar unas tablas en MySQL y me parecio interesante escribir un nota sobre.
El proceso de copiado es relativamente facil, sin embargo es necesario saber que es exactamente lo que se necesita, ya sea copiar unicamente la estructura o la estructura y los datos, y dependiendo de esto, asi sera el comando a utilizar.
En el caso de desee copiar unicamente la estructura de una tabla lo puede hacer con este comando:
create table tabla_nueva like tabla_a_copiar;
Aqui habra copiado tabla_a_copiar a tabla nueva, pero unicamente la estructura vacia sin ningun dato.
Para copiar una tabla con todos y sus datos existen dos formas de hacerlo, la mas sencilla y rapida es:
CREATE TABLE tabla2 SELECT * FROM tabla1;
O bien la forma larga y lenta que consite en dos pasos:
CREATE TABLE tabla2 LIKE tabla1;
Se copia primero la estructura de la tabla 1 a la tabla2 y luego se copian los datos:
INSERT INTO tabla2 SELECT * FROM tabla1;
Espero que esto sea gran ayuda.
Saludos.
Cambiar el password de root en MySql
Bueno,
Esto quizas muchas personas ya lo manejan y esta de mas ponerlo en este blog, sin embargo he decido ponerlo solo como una nota aclaratoria por si acaso alguien anda buscando esa informacion.
Si su root de MySql no tiene password todavia, lo primero que necesitara hacer es lo siguiente:
$ mysqladmin -u root password NUEVOPASSWORD
O bien si usted ya tenia un password para root y solo desea cambiarlo entonces utilice este comando
$ mysqladmin -u root -p passwordviejo nuevopassword
Utilizando el comando de arriba tambien se puede cambiar el password de cualquier otro usuario en mysql, pero se necesitará saber el password del usuario, si no sabe cual es el password pero se tiene acceso como root a mysql, entonces podra cambiarlo desde el shell de mysql con el siguiente manera.
Mysql guarda los login y los password en la tabal user de la base de datos MySQL.
1) Entrar a MySQL:
$ mysql -u root -p
2) Utilizar la base de datos mysql (escriba el comando en el shell de mysql> ):
mysql> use mysql;
3) Cambiar el password para un usuario:
mysql> update user set password=PASSWORD(“NUEVOPASSWORD”) where User=’Usuarioxy’;
4) Cargar los privilegios:
mysql> flush privileges;
mysql> quit
Listo, password ha sido cambiado exitosamente.

