Error que desconozco

Started by ViperJWLMu, August 13, 2024, 02:45:15 PM

Previous topic - Next topic

ViperJWLMu

Hola a todos. Tengo un foro SMF versión 2.0.19 montado en una PC con Windows en XAMPP, todo iba perfecto. De un momento para otro se cortó la luz, la PC se reinició y cuando volví a poner el xampp en funcionamiento (MySQL y Apache) el foro me arroja un error que no entiendo el significado ni cómo solucionarlo.

Es extremadamente raro porque todo funcionaba perfecto, yo no modifiqué nada en los archivos ni en la base de datos, realmente estoy descolocado.

Necesito ayuda con esta falla, alguien sabe qué puedo hacer?

"Deprecated: Array and string offset access syntax with curly braces is deprecated in C:\Webs\foro\Sources\Subs.php on line 8207
The database value you're trying to insert does not exist: theme_guests"

Si busco esa línea en el archivo Subs.php encuentro esto
// Step 3: Ready to split apart and index!

$words = explode(' ', $words);



if ($encrypt)

{

$possible_chars = array_flip(array_merge(range(46, 57), range(65, 90), range(97, 122)));

$returned_ints = array();

foreach ($words as $word)

{

if (($word = trim($word, '-_\'')) !== '')

{

$encrypted = substr(crypt($word, 'uk'), 2, $max_chars);

$total = 0;

for ($i = 0; $i < $max_chars; $i++)

$total += $possible_chars[ord($encrypted{$i})] * pow(63, $i);

$returned_ints[] = $max_chars == 4 ? min($total, 16777215) : $total;

}

}

return array_unique($returned_ints);

}

else

{

// Trim characters before and after and add slashes for database insertion.

$returned_words = array();

foreach ($words as $word)

if (($word = trim($word, '-_\'')) !== '')

$returned_words[] = $max_chars === null ? $word : substr($word, 0, $max_chars);



// Filter out all words that occur more than once.

return array_unique($returned_words);

}

}



Diego Andrés

¿Qué versión de PHP tienes? Es posible que se haya seleccionado una más reciente cuando volviste a levantar el servidor.

Revisa los requerimientos y compara con la configuración que tienes: https://download.simplemachines.org/requirements.php

SMF Tricks - Free & Premium Responsive Themes for SMF.

ViperJWLMu

Quote from: Diego Andrés on August 13, 2024, 03:46:41 PM¿Qué versión de PHP tienes? Es posible que se haya seleccionado una más reciente cuando volviste a levantar el servidor.

Revisa los requerimientos y compara con la configuración que tienes: https://download.simplemachines.org/requirements.php
Gracias por responderme en esta situación tan urgente para mí.

Cómo se podría haber cambiado de versión? Tengo la versión 7.4.27

Danielㅤ

Hola, en casos como éstos hay que asegurarse de que ese corte de luz no haya dañado la base de datos del foro, porque es probable que eso pueda pasar.

Prueba a cambiar la versión de PHP a una compatible, si eso no funciona, muy probablemente sea la base de datos, siempre tenes que tener copias de seguridad.


Saludos

ViperJWLMu

Quote from: Daniel� on August 13, 2024, 04:44:46 PMHola, en casos como éstos hay que asegurarse de que ese corte de luz no haya dañado la base de datos del foro, porque es probable que eso pueda pasar.

Prueba a cambiar la versión de PHP a una compatible, si eso no funciona, muy probablemente sea la base de datos, siempre tenes que tener copias de seguridad.


Saludos
Yo tengo la 7.4.27, esa no es compatible? según la página que me pasaron creo que debería ser compatible, aparte siempre funcionó con esa.

Diego Andrés

Quote from: ViperJWLMu on August 13, 2024, 02:45:15 PMThe database value you're trying to insert does not exist: theme_guests"

Parece que te falta algo en la tabla?
Intenta ejecutando esto en tu PHPMyAdmin en la tabla smf_settings

INSERT INTO smf_settings
(variable, value)
VALUES ('theme_guests', '1')

SMF Tricks - Free & Premium Responsive Themes for SMF.

Danielㅤ

Además de lo que indica Diego, yo haría una reparación de la base de datos usando las herramientas de PHPMyAdmin, si hay algún error se corregirá y sinó, entonces seguirá igual., más que nada haría esa reparación por las dudas porque según el error que indica Diego en el post anterior, hay un valor que no existe, es decir que se ha borrado.

ViperJWLMu

Quote from: Diego Andrés on August 13, 2024, 06:36:09 PM
Quote from: ViperJWLMu on August 13, 2024, 02:45:15 PMThe database value you're trying to insert does not exist: theme_guests"

Parece que te falta algo en la tabla?
Intenta ejecutando esto en tu PHPMyAdmin en la tabla smf_settings

INSERT INTO smf_settings
(variable, value)
VALUES ('theme_guests', '1')
Lo estoy probando, espero que pueda funcionar, te mandé mensaje también Diego.

ViperJWLMu

Bueno primero que nada quiero agradecer enormemente a Diego que me salvó el foro gracias a esa consulta, ya volvió a funcionar todo. Lo que si se me quedaron generando dos errores todo el tiempo, que son estos:




Diego Andrés

Parece que es algo similar, prueba con esto:

INSERT INTO smf_settings
(variable, value)
VALUES ('settings_updated', '0')


Creo que valdría la pena que revises si tienes un backup de ayer (de tu base de datos pues los archivos parecen estar bien), quizás te sea más sencillo restablecer la base de datos sin tener algún dato corrupto o perder mucha información.

SMF Tricks - Free & Premium Responsive Themes for SMF.

Diego Andrés

Otro detalle que podrías considerar es utilizar repair_settings para corregir algunos ajustes predeterminados y rutas.

What is repair_settings.php?

SMF Tricks - Free & Premium Responsive Themes for SMF.

ViperJWLMu

Quote from: Diego Andrés on August 14, 2024, 12:40:28 AMParece que es algo similar, prueba con esto:

INSERT INTO smf_settings
(variable, value)
VALUES ('settings_updated', '0')


Creo que valdría la pena que revises si tienes un backup de ayer (de tu base de datos pues los archivos parecen estar bien), quizás te sea más sencillo restablecer la base de datos sin tener algún dato corrupto o perder mucha información.


Actualmente el foro está andando, probé todas las funciones y todo anda bien, esos dos errores son los únicos que aparecen, crees que sea necesario acudir a un backup? porque realmente no tengo, el único que tengo es de hace 1 mes atrás.

Diego Andrés

Eso quedaría a tu criterio si el foro está funcionando adecuadamente.

Los errores que mencionas, aunque están en diferentes archivos son exactamente el mismo y se deben a que esa otra entrada no estaba en la tabla, pero si ya lo has corregido también pues ya no deberías de tener errores entonces.

SMF Tricks - Free & Premium Responsive Themes for SMF.

ViperJWLMu

Quote from: Diego Andrés on August 14, 2024, 01:04:30 AMEso quedaría a tu criterio si el foro está funcionando adecuadamente.

Los errores que mencionas, aunque están en diferentes archivos son exactamente el mismo y se deben a que esa otra entrada no estaba en la tabla, pero si ya lo has corregido también pues ya no deberías de tener errores entonces.
Acabo de solucionar los dos errores, quedó perfecto la consulta que me mandaste.

Ahora apareció otro más, es del template Yattagan jaja (hermoso por cierto, el mejor de todos). Es este:

ViperJWLMu

Le pedí a un usuario que comente un tema y aparecieron algunos errores más, creo que son los últimos que vi:





Diego Andrés

mostDate también es otra entrada de la misma tabla, definitivamente sigues teniendo problemas con la base de datos...
Los otros que posteaste no estoy seguro, podrían también ser causados por algo relacionado.

('mostDate', UNIX_TIMESTAMP()),

SMF Tricks - Free & Premium Responsive Themes for SMF.

ViperJWLMu

Quote from: Diego Andrés on August 14, 2024, 01:51:01 AMmostDate también es otra entrada de la misma tabla, definitivamente sigues teniendo problemas con la base de datos...
Los otros que posteaste no estoy seguro, podrían también ser causados por algo relacionado.

('mostDate', UNIX_TIMESTAMP()),

Eso que me enviaste cómo se ejecutaría?

Diego Andrés

Sería igual

INSERT INTO smf_settings
(variable, value)
VALUES ('mostDate', UNIX_TIMESTAMP())

SMF Tricks - Free & Premium Responsive Themes for SMF.

ViperJWLMu

Quote from: Diego Andrés on August 14, 2024, 08:05:06 AMSería igual

INSERT INTO smf_settings
(variable, value)
VALUES ('mostDate', UNIX_TIMESTAMP())

Te agradezcó muchísimo, ya no me volvió a dar errores el foro, un genio total.

Lo que si, un detalle, algo que me di cuenta, no se si tendrá mucho que ver, pero cuando fui a las cuentas de usuario en el PHPMyAdmin me di cuenta que hay este error (esto no pasaba antes)



(SELECT DISTINCT `User`, `Host` FROM `mysql`.`user` ) UNION (SELECT DISTINCT `User`, `Host` FROM `mysql`.`db` ) UNION (SELECT DISTINCT `User`, `Host` FROM `mysql`.`tables_priv` ) UNION (SELECT DISTINCT `User`, `Host` FROM `mysql`.`columns_priv` ) UNION (SELECT DISTINCT `User`, `Host` FROM `mysql`.`procs_priv` ) ORDER BY `User` ASC, `Host` ASC

Diego Andrés

En phpmyadmin deberías tener alguna herramienta para reparar la tabla.

SMF Tricks - Free & Premium Responsive Themes for SMF.

Advertisement: