Acuamin

Topic: array_keys() [function.array-keys] Problema y posibles soluciones

Hola. Pues les cuento que intenté agregar un widget de texto al Sidebar de mi blog, pero ocurrió algo que antes no había visto... Me apareció un cuadro de captura en donde me pedía el título del Widget y el contenido, así que lo hice, agregué el título y el texto que contendría, guardé y me apareció el siguiente mensaje:

Warning: array_keys() [function.array-keys]: The first argument should be an array in /misitio/wp-includes/widgets.php on line 654

Warning: Invalid argument supplied for foreach() in /misitio/wp-includes/widgets.php on line 654

Warning: Cannot modify header information - headers already sent by (output started at /misitio/wp-includes/widgets.php:654) in /misitio/wp-includes/pluggable.php on line 689

Lo primero que se me ocurrió fue activar el plugin de "Modo de Mantenimiento" y que me "desconecto" del área de administración... Bueno, sin problemas, ahora quiero entrar a mi blog y me aparece la clásica forma o aviso de que el blog está en modo de mantenimiento, pero cuando intento entrar a mi panel o bueno, al wp-admin... Ya no me deja y me aparece el mismo mensaje en una página en blanco...

Si quieren ver el problema pueden ir a mi sitio, verán el anuncio de en mantenimiento y en la parte inferior, del lado derecho hay un link a "administration", dale y verás lo que pasa. Ahora sí estoy muy asustado, ¿Alguien me puede ayudar? De antemano gracias.

Benny

Haaa, lo olvidé mi blog está en: http://acuamin.com

Last edited by Acuamin (2008-04-20 06:15)

Sólo sé que nada sé... ¡Enséñame!

IMO

Re: array_keys() [function.array-keys] Problema y posibles soluciones

Como no puedes entrar al panel de control, entra por tu ftp, y borra el plugin de mantenimiento, y se supone que ya podras entrar al panel. ya me cuentas.

Solo ayudare a los posts con fecha 2008, y para que estos no los repitan usen buscar, por si esta el tema ya comentado, Gracias!

http://feeds.feedburner.com/gr-feed.1.gif

Acuamin

Re: array_keys() [function.array-keys] Problema y posibles soluciones

Hola IMO, gracias por atender mi solicitud.

Lo de entrar a mi panel ya lo resolví, sí, así como me haz dicho. Sin embargo después surgió otro problema, simplemente ya no pude entrar al Dashboard y me presentaba varios mensajes de error los que surgían a partir del primer problema, el de:

Warning: array_keys() [function.array-keys]: The first argument should be an array in /misitio/wp-includes/widgets.php on line 654

Warning: Invalid argument supplied for foreach() in /misitio/wp-includes/widgets.php on line 654

Mmmmm... estuve toda la noche buscando cómo resolver este problema y resulta que no soy el único que lo ha pasado mal, pero aunque encontré algunas recomendaciones NO dí con la solución definitiva... En la siguiente web hay muchos solicitando apoyo (en el momento que escribo esto existen 51 hits), algunas ideas, pero que no a todos les funcionan:

http://wordpress.org/search/array_keys%28%29?forums=1

Una "solución" era editar el wp-config.php y eliminar la línea 7 dónde dice:

define('DB_CHARSET', 'utf8');

Yo no la eliminé, simplemente le agregué "//" al principio y al final de la línea para que fuera tomado como un comentario dentro del código. Y sí funcionó, bueno, vi que se resolvieron estos problemas en principio, pero al entrar a la parte pública de mi blog vi todos mis posts y, en fin, cualquier letra acentuada se convirtió en un o unos caracteres muy feos, jejeje... Así que volví a editar el archivo wp-config.php y eliminé las "//" de la línea 7... Creo que, para mí, no fue la solución aunque vi que a otras personas sí les funcionó.

Otra solución que encontré fue algo más drástica, entrar a editar directamente la base de datos... así, en la tabla wp_options eliminé un campo widget_txt o widg_txt, volví a entrar al blog, perdí algunos widgets de texto de mi barra lateral, pero por lo menos ya funcionaba y no me mostraba error alguno. Pero, tampoco fue la solución, pues en cuanto intenté volver a configurar los widgets de mi barra lateral y agregué unos campos de texto el problema regresó...

Y por último, lo más radical, exporté la base de datos, completa, después desinstalé todo en mi servidor, es decir, se reinició por completo la cuenta, cree dos bases de datos, una para el blog y otra en donde importé todas las tablas de la antigua base de datos. Instalé Wordpress versión 2.5, con la clásica de los 5 minutos (que son menos), estuve trabajando con las bases de datos, eliminando, editando, exportando, e importando aquellas tablas que fueron necesarias, entre las que no toqué (en la nueva base de datos) fue la de wp_options y hasta ahorita el blog "funciona"... Mis posts se miran con muchos caracteres extraños, la codificación de caracteres es UTF-8, en mi Firefox le cambió en Ver>>Codificaciones de caracteres>> Occidental ISO-8859-1 y ya veo bien mis entradas y, en general, todo mi blog. A pesar de todo esto aún sigo sufriendo porque mi Dashboard está muy lento, súper lento diría yo y lo mismo cuando carga el blog, se tarda más de un minuto en cargar completo.

Pues hasta ahora esto es lo que logrado investigar en cuanto al tema... Que, por cierto, ahora que me ocurrió a mí veo que le ha pasado a muchas personas, acudí a los bloggers para preguntarles como superaron este problema y su respuesta fue: Recetear la cuenta de hospedaje y reinstalar todo nuevamente. ¿Por qué será que no hay una solución definitiva para este problema? O al menos yo no la he encontrado.

IMO, comento todo esto con la única intensión de que si alguien tiene el mismo problema y llega aquí, encuentre mi experiencia y si de algo le sirve, pues será bueno. Por favor, me pasó en otro foro que igual compartí mi "vía crucis" y después me regañaron por ser tan "largo" en mis cuentos, ojala no pase lo mismo aquí.

Bueno, entonces, si no hay problema en cuanto al párrafo anterior, ya seguiré aquí contando mis "cuitas" con este problema en mi blog.

Saludos desde México!

Benny

Sólo sé que nada sé... ¡Enséñame!

Acuamin

Re: array_keys() [function.array-keys] Problema y posibles soluciones

Hola.

Primero, IMO, quiero pedirte un GRAN favor, pues esto no lo puedo hacer yo... Al principio no tenía idea de cuál era el problema en mi blog, por eso puse este título al post, pero, ¿Podrías, por favor cambiarlo? Quizá lo más correcto para el titulo del post sería: "Warning: array_keys() [function.array-keys] Problema y posibles soluciones", es más descriptivo y quizá así cuando alguien tenga el mismo problema le sea más fácil encontrar este post.

Además que con esta experiencia descubrí que muchísimos blogs han pasado por lo mismo y seguro que muchos otros lo pasarán también, hice una búsqueda en google y quizá ese título sea bien indexado en google y este post sería una fuente de referencia para otras personas. Si cambias el título desde ya muchas gracias.

En cuanto al problema, decir que en verdad que es algo muy fastidioso y entre todo lo que busqué y probé no pude encontrar una solución DEFINITIVA, encontré una solución que considero parcial, pero que a la gran mayoría de autores de blogs les ayudará. La posible solución es la siguiente:

1° Descargar a la computadora el archivo wp-config.php
2° Editar con el bloc de notas el archivo wp-config.php
3° Eliminar la línea 7 dónde dice: define('DB_CHARSET', 'utf8');
4° Guardar el archivo wp-config.php y volver a subirlo al servidor.

Con eso el problema se resuelve parcialmente y digo que parcialmente porque al parecer todo funciona normalmente, pero cuando uno intenta configurar los widgets de la barra lateral, tarda un poco en cargar la página para hacerlo y al guardar igual se tarda en almacenar los cambios, en concreto, se mira que en el servidor se "sufre" para hacer los cambios.

El único problema con el que me "topé" después de hacer lo anterior es que en cada una de mis entradas y comentarios todos los caracteres con acento o las "ñ" fueron sustituidos por un símbolo raro, una especie de "rombo" en color negro con un signo de interrogación en su interior... Así que no me ha quedado otra que editar entrada por entrada y cambiar ese signo raro por el caracter que debería ir ahí... Tengo tan sólo 26 entradas y unos 80 comentarios (mi blog es reciente) y aún así ha sido un gran trabajo estar editando cada una de las entradas y comentarios, no quiero ni pensar que esto le pasara a un blog con muchísimas entradas y comentarios.

Estuve investigando y el problema tiene que ver con que al momento de instalar Wordpress crea las bases de datos con una codificación Latin y en el wp-config.php se le dice que reconozca las bases de datos con la codificación UTF8, y por eso hay problemas la pasar datos entre las varias funciones de wordpress. En realidad no sé mucho de todo esto, investigaré más al respecto, pero creo que con esto pueden salir del paso quien sufra el mismo problema.

Bueno, pues por lo mientras aquí les dejo esto que fue lo que encontré para solucionar el problema, pero sigo pensando que es una solución parcial y hace falta algo más definitivo, ojala que si otra persona tiene otra buena o mejor solución nos la comparta.

Saludos!

Benny

Last edited by Acuamin (2008-04-22 07:02)

Sólo sé que nada sé... ¡Enséñame!

IMO

Re: array_keys() [function.array-keys] Problema y posibles soluciones

si, como no arregles la conversion de tu base de datos, vas a seguir teniendo problemas, hasta el infinito

Solo ayudare a los posts con fecha 2008, y para que estos no los repitan usen buscar, por si esta el tema ya comentado, Gracias!

http://feeds.feedburner.com/gr-feed.1.gif

Acuamin

Re: array_keys() [function.array-keys] Problema y posibles soluciones

Hola IMO...

Vaya que me se me ha quebrado la quijada con lo de la conversión de las bases de datos... ¿Podrías explicarme mejor? ¿A qué debo convertirlas? ¿Cuál es el formato que me conviene para que mi blog funcione correctamente? y cualquier comentario que consideres, desde ya te lo agradezco muchísimo.

Y por otro lado, resulta que en otra entrada comenté que en mi blog tengo activadas las casillas para que cada vez que alguien me deje un comentario yo reciba un email avisándome de ésto y que nunca recibí tal email... bueno, ¿A qué con esto? Pues resulta que he descubierto que el servicio de hospedaje tiene bastante que ver con los problemas que pueden surgir con el blog... Lo digo porqué:

Apenas cambié de servicio de hospedaje, el que tenía se caía una o dos veces al mes y tardaba bastante en recuperarse, además, siempre mi blog fue muy lento para todo y, cómo antes dije, nunca recibí el email de notificación cuando un lector dejaba un comentario... Cambié a un mucho mejor servicio de hospedaje y ahora sí recibí el email de notificación y veo que en mi blog todo funciona ya correctamente. Entonces,  de esta experiencia descubro que se cumple lo de que "lo barato sale caro" y hay que tener cuidado a la hora de seleccionar el servicio de hospedaje y aunque se "gaste" un poco más o mucho más es preferible a correr el riesgo de perder todo el trabajo realizado.

Aunque mi blog ya está funcionando, en mi desesperación por reparar el daño hice algunos cambios a las tablas de la base de datos, recuerdo que las pasé de una codificación que se llamaba "latin1_swedish_ci" y las pasé a "utf8_general_ci", en mi PhpmyAdmin se llama "Cotejamiento" y también ocurre que todas las tablas están en "utf8_general_ci", pero algunos campos continúan en un "cotejamiento" de "latin1_swedish_ci" ¿Ahora qué hago? ¿Lo dejo todo así o cambió o qué? smile

Entonces, sé que aunque mi blog se mira bien, algo le duele por dentro... ¿Alguna recomendación? Por eso las preguntas de arriba para IMO, aunque agradeceré a cualquiera que me pueda ofrecer algún consejo, sugerencia u orientación.

Saludos!

Benny

PD: Por cierto IMO, me encantó tu blog, aquí en NEZA hay muchos grafiteros, ya les he dado la dirección de tu blog para que se inspiren. smile

Last edited by Acuamin (2008-04-24 15:31)

Sólo sé que nada sé... ¡Enséñame!

Acuamin

Re: array_keys() [function.array-keys] Problema y posibles soluciones

Bueno, aquí estoy otra vez con mis "autoentradas"... lo siento, espero no les moleste por ocupar mucho espacio en servidor...

Después de tanto investigarle ahora creo voy comprendiendo que el error está en que:

1.- Al crear la base de datos la dejamos completamente en blanco, sin tablas y sin datos.
2.- Al instalar Wordpress a partir de la versión 2.x crea automáticamente las tablas con la codificación "latin1_swedish_ci"
3.- Pero en el wp-config.php define que la base de datos y las tablas se leerán (supongo que por el navegador) en formato utf8, con el parámetro define('DB_CHARSET', 'utf8'); pero no creo que sólo se lean así por el navegador, sino también dentro de los "trabajos" que hace el mismo servidor y, así, hay una "inexactitud" al momento de pasar (y convertir) datos entre funciones, de ahí el problema con el archivo wp-widget.php y por esa razón aparece el mensaje que da titulo a esta entrada.

Las soluciones:

1.- Borrar el define('DB_CHARSET', 'utf8'); del wp-config.php
2.- De todos modos, pasar o convertir la base de datos, las tablas y los campos de éstas a la codificación utf8... pero... ahora me viene otra duda:

¿A cuál codificación debo convertir la base de datos con todas sus tablas y sus campos? Pues tengo estas opciones:

utf8_bi_ci
utf8_czech_ci
utf8_danish_ci
utf8_estunian_ci
utf8_general_ci
utf8_icelandic_ci
utf8_latvia_ci
utf8_persian_ci
utf8_polish_ci
utf8_roman_ci
utf8_rumanian_ci
utf8_slovak_ci
utf8_slovenian_ci
utf8_spanish2_ci
utf8_spanish_ci
utf8_swedish_ci
utf8_turkish_ci
utf8_unicode_ci

De todas estas las que más me "laten" son:

utf8_general_ci
utf8_spanish2_ci
utf8_spanish_ci
utf8_unicode_ci

¿A cuál me recomiendan convertir y por qué?
¿Qué diferencia habrá entre "utf8_spanish_ci" y "utf8_spanish2_ci"?

Pues cualquier comentario, respuesta o sugerencia lo agradeceré bastante.

Saludos!

Benny

Sólo sé que nada sé... ¡Enséñame!

IMO

Re: array_keys() [function.array-keys] Problema y posibles soluciones

Muchas gracias acuamin, si quieres convertir toda la base de datos, no hace falta que la hagas a mano, puedes utilizar el plugin convert utf-8 http://g30rg3x.com/utf8-database-converter/

Solo ayudare a los posts con fecha 2008, y para que estos no los repitan usen buscar, por si esta el tema ya comentado, Gracias!

http://feeds.feedburner.com/gr-feed.1.gif

Acuamin

Re: array_keys() [function.array-keys] Problema y posibles soluciones

Hola IMO. Gracias a ti por atenderme!

Oye, entre tanta cosa que he probado ya pasé por el convertidor que me recomiendas, afortunadamente realicé un backup de la base de datos, porque al ejecutarlo me avisó que está echo para correr o es compatible con wordpress versión 2.1 a la 2.2, pero no me importó (tenía el backup) así que continué con el proceso y sí, pasó la base de datos a utf8, pero desgraciadamente perdí muchísimos campos, entradas y comentarios, entonces, no me funcionó, me eliminó muchísima información de la BD en la conversión, así que volví a restaurar la BD y ya todo volvió a la normalidad. Por eso, si tienen una versión posterior a la 2.2 es mejor andarse con cuidado con ese Plugin, según lo que yo experimenté... jejeje

Ahora estoy haciendo la conversión de la base de datos en sí, de cada tabla y también de cada campo, pero mi duda es, ¿A qué codificación la convierto? Me parece que las opciones son una de estas:

utf8_general_ci
utf8_spanish2_ci
utf8_spanish_ci
utf8_unicode_ci

¿Alguien sabe cuál será la mejor y por qué? Gracias!!

Benny

Sólo sé que nada sé... ¡Enséñame!

IMO

Re: array_keys() [function.array-keys] Problema y posibles soluciones

Claro antes de hacer algo con las bases de datos siempre hay que hacer o tener un backup antes, my bien, pues acabo de mirar mi base de datos y la tengo hecha en      utf8_general_ci por si te es de ayuda, suerte!

Solo ayudare a los posts con fecha 2008, y para que estos no los repitan usen buscar, por si esta el tema ya comentado, Gracias!

http://feeds.feedburner.com/gr-feed.1.gif

Acuamin

Re: array_keys() [function.array-keys] Problema y posibles soluciones

Muchas gracias IMO, sí, bien que me sirvió la información.

Fíjate que hice esto, para probar, y el blog funcionó a la perfección:

En lugar la línea "define('DB_CHARSET', 'utf8');" sólo cambié el 'utf8' por 'utf8_general_ci' y al final el wp-confing.php en la línea 7 (me parece) quedó así:

define('DB_CHARSET', 'utf8_general_ci');

Y ya el foro está funcionando bien, incluso antes igual tenía problemas con algunos plugins sobre todo el de estadísticas de wordpress y muchas broncas con los widgets, pero ahora ya todo funciona muy bien, incluso rápido....

Haaaa! Otra observación, cambié a un servidor más "profesional" (aunque un poquito más costoso) y eso, creo, también influyó en la solución de este problema, incluso resolvió otros problemas, pues ahora sí recibo el email avisándome cuando alguien dejó algún comentario que debo moderar, en el anterior servidor esto no pasaba a pesar de tener activada la opción.

Espero en una o dos semanas cambiar mi blog a Bluehost.com (más, pero mucho más profesional de lo que tengo ahora) y espero ver que cambios "detecto" en el funcionamiento de mi blog.

Pues si encuentro más cosas que comentarles aquí estaré dando lata.

Saludos!

Benny

Sólo sé que nada sé... ¡Enséñame!

IMO

Re: array_keys() [function.array-keys] Problema y posibles soluciones

Enhorabuena benny :-D

Solo ayudare a los posts con fecha 2008, y para que estos no los repitan usen buscar, por si esta el tema ya comentado, Gracias!

http://feeds.feedburner.com/gr-feed.1.gif

hipermegared

Re: array_keys() [function.array-keys] Problema y posibles soluciones

tengo el mismo problema y no he logrado solucionarlo, porfavor Acuamin me gustaría que te pusieras en contacto conmig, mi msn es hipermegared@hotmail.com agradecería tu ayuda