Archivo de Diciembre 2006

Hace un tiempo dije que iba a hablar sobre el problema que tuve con wordpress y su base de datos, asi que empecemos por el principio:

Tras instalar wordpress en mi cuenta de awardspace, todo funcioni bastante bien hasta el dia en que aparecieron comentarios de spam en el blog. El problema no seria de mayor importancia de no ser por que awardspace CENSURA PALABRAS. ¿Que es lo que censura? Pues palabras que suelen estar muy presentes en mensajes de spam o que son usadas en el ambito de la pirateria, y cuando el servidor se encuentra con una pagina que contiene alguna de estas palabras en vez de mostrarla da un error y te redirige a la pagina principal de awardspace. En esta situacion, cada vez que un comentario de spam se colaba en mi blog, el servidor no cargaba las paginas y no se podia entrar. Para solucionar esto, tuve que entrar en phpMyAdmin, el gestor de bases de datos que usa awardspace (y la gran mayoria de hostings) y buscar los comentarios de spam en la tabla wp_comments para borrarlos. Una vez hecho esto el problema parecia solucionado, pero la cosa se complico.

Despues de que uno de mis articulos saliera en meneame.net, vi que a la semana de haber salido no tenia ni un solo comentario en el blog, cosa que me extraño un huevo, porque es casi imposible que nadie comentase nada, asi que entre en el panel de administracion de wordpress y vi que tenia comentarios pendientes de moderacion. Me parecio extrañisimo que estuvieran pendientes de moderacion, porque no le habia indicado a wordpress que filtrase los comentarios, asi que fui a la pestaña de configuracion de las opciones de los comentarios para ver si estaba bien configurado pero… ¡No me cargaba la pagina y me redirigia a la pagina principal de awardspace! En un principio pense que podia ser un caso de censura como me habia pasado con los comentarios de spam, pero lo descarte porque en esa pagina de opciones no habia en principio ninguna palabra censurable por awardspace.

Sin saber que era lo que fallaba hice copia de la base de datos, borre por completo la base de datos instalada en el servidor y restaure la copia de seguridad. Entonces lejos de arreglarse el problema me surgio otro peor: las ñ y las vocales acentuadas habian sido cambiadas por interrogantes. Legados a este punto borre la base de datos y la instalacion de wordpress y volvi a empezar desde cero. Aun asi seguia teniendo el mismo problema con la pagina se las opciones de los comentarios

Tras mucho buscar, encontre la solucion a lo de los comentarios: resulta que una de las palabras que censura awardspace es “p r o x y” (notese que tengo que escribirla con espacios porque sino la censura) y cuando una pagina contiene es u otras palabars que censura, no se muestra la pagina y te redirige a la pagina principal de awardspace. El caso es que el archivo wp-comments.php contenia la palabra “p r o x y”, en concreto contenia “open_p:r:o:x:y_check”, (sin los : que los pongo pa k no me censure la palabra) asi que cambie esto por “opcheck” en todos los sitios donde salia dentro del archivo. Problema solucionado.

Pero ahora tenia que solucionar tambien el problema de las interrogantes en los post. En la mayoria de las instalaciones de MySQL de los hostings el juego de caracteres por defecto es “latin1″ y el cotejamiento en concreto es “latin1_swedish”, cuando lo mas correcto es k fuese “utf8_general_ci” que es un cotejamiento que vale para todos los idiomas. El caso es que llegue a la conclusion de que habia que cambiar el juego de caracteres de la base de datos y los contejamientos para que usasen utf8. Buscando por la web encontre unas consultas SQL que hacian esto, y que dejo por aqui

ALTER table wp_categories CONVERT TO CHARACTER SET utf8;
ALTER table wp_comments CONVERT TO CHARACTER SET utf8;
ALTER table wp_linkcategories CONVERT TO CHARACTER SET utf8;
ALTER table wp_links CONVERT TO CHARACTER SET utf8;
ALTER table wp_options CONVERT TO CHARACTER SET utf8;
ALTER table wp_post2cat CONVERT TO CHARACTER SET utf8;
ALTER table wp_postmeta CONVERT TO CHARACTER SET utf8;
ALTER table wp_posts CONVERT TO CHARACTER SET utf8;
ALTER table wp_usermeta CONVERT TO CHARACTER SET utf8;
ALTER table wp_users CONVERT TO CHARACTER SET utf8;

Y con esto tenemos la base de datos lista para usar utf8, lo malo es quue no convierte los post ya escritos a utf8 y por tanto seguiran saliendo caracteres extraños. La ventaja que tiene esto es que los posts nuevo que hagamos si que se veran bien y nos daran menos problemas en el futuro.

Pero seguia teniendo el mismo problema, y por muchos sitios en los que buscaba nunca me daban respuesta a la pregunta de ¿Como cojones convierto un texto en codificacion latin1 a uno en codificacion utf8? Pues esto ultimo tuve que currarmelo yo solo y a base de experimentacion consegui la solucion

OJO QUE ESTA SOLUCION NO SALE EN OTROS BLOGS NI OTRAS PAGINAS:

La situcion es la siguiente: Tenemos una base de datos que usa UTF8 como juego de caracteres y tenemos parte de los posts de la base de datos (los mas recientes) codificados en UTF8 y otra parte (los mas antiguos) codificados en latin1. Lo primero k tenemos que hacer es acceder al gestor de nuestra base de datos (phpMyAdmin seguramente sera el que tengamos) y en la columna de la izquierda pulsamos sobre la tabla “wp_posts” de la base de datos. Luego pulsamos sobre “Examinar” y luego desplegamos la lista de donde pone “Organizar segun clave”, seleccionamos “PRIMARY (Descendente)” y pulsamos sobre “Continuar”

338812626_49f15c7977_o.jpg

Lo siguiente es buscar uno de los post que queremos corregir porque se se ven mal en el blog. AQUI HAY QUE TENER CUIDADO porque dependiendo de como este configurado el servidor donde tengais la base de datos, PUEDE QUE LOS POST QUE EN LA PAGINA SE VEN BIEN EN PHPMYADMIN SE VEAN MAL Y VICEVERSA. Una vez k tengamos localizado el post k keremos corregir pulsamos sobre el boton del lapiz para editar el post

Ahora ya podemos editar este post a nuestro gusto. Lo primero sera ir al menu “Ver” de Firefox, seleccionar “Codificacion de caracteres” y cambiar la opcion “UTF-8″ que deberia estar marcada por “ISO-8859-1″. Veremos entonces que la pagina se recarga y que los caracteres acentuados se ven de manera distinta. Entonces en ese momento copiamos todo el contenido del campo “post_content” y luego vamos otra vez al menu “Ver” y volvemos a marcar “UTF-8″ como codificacion a usar. Cuando se recargue la pagina borramos todo el contenido del campo “post_content” y pegamos el texto que habiamos copiado antes. Luego pulsamos sobre el boton “Continuar” de abajo y listo. Dependiendo de si el titulo del post que estas corrigiendo se ve mal o no puede ser necesario que hagas lo mismo para el campo “post_title”.
339060254_e3390d7cfd_o.png

Bueno esta es la solucion que encontre. Aunque es algo tediosa, porque tienes que ir modificando los post uno a uno, es mejor que tener que reescribirlos todos desde la interfaz de wordpress y ademas te deja la base de datos bastante limpia.

Comments 7 Comentarios »

A continuacion enlazo un articulo en dos partes escrito por el gran y magnifico GonzoTBA en su blog El Sentido de la Vida, espacio de lectura recomendada debido a la calidad de sus articulos. Simplemente sublime y perfecto. Ha dado en el clavo, lo que escribe muestra exactamente lo que yo escribiria sobre el tema si se me hubiese dado por hacerlo. Como muestra, aqui teneis mi párrafo favorito del articulo, y quizas el que mas razon lleva:

“Mujer, no te equivoques. Al pajero profesional le importa un carajo su propia satisfacción porque sabe que siempre se encuentra a cinco minutos del orgasmo más lejano. Sólo desea tomar tu cuerpo y explorar todas aquellas zonas que sólo ha visto en mapas, visitar esos lugares recónditos de los que no hablan las guías de viaje. Sólo él tendrá la paciencia para pulsar todos los botones en la secuencia correcta y tantas veces como haga falta, y no habrá perversión que puedas concebir que no haya existido antes en su cabeza.

Si lo que quieres es sexo del que te puedas arrepentir al día siguiente, te valdrá el guaperas de la discoteca. Para una experiencia inolvidable, ponte en manos de un pajero profesional.”

Ya lo sabeis, el hecho de que llamen a alguien pajillero no deberia ser considerado como algo malo. Mas bien es como una marca de calidad, como la denominacion de origen, de que el producto es bueno, es como el turrón (ejemplo que viene al pelo dadas esta epoca en la que nos encontramos), no es lo mismo pillarte un turron de 4 duros en el Carrefour que dejarte una pasta en un turron de Jijona, con la salvedad que que el pajillero profesional puede salir mas barato en terminos de tiempo invertido en ligar que el tipico tio guaperas que dice aquello de “yo no me hago pajas, a mi me las hacen”.

He aqui los enlaces a los grandes articulos de GonzoTBA:

Las pajas (I)
Las pajas (II)

Comments 2 Comentarios »