Errore: The database value you're trying to insert does not exist

Started by Neoxxx, February 27, 2013, 07:48:21 AM

Previous topic - Next topic

Neoxxx

Ciao a tutti, stamattina ho provato a entrare nel mio sito e mi sono ritrovato questo messaggio di errore:

The database value you're trying to insert does not exist: oldgroup

Praticamente non mi è possibile toccare nulla dal forum. Recentemente non ho installato nessuna mod, ho fatto qualche modifica a una mod una settimana fa ma fino a stamattina è andato tutto bene. La cosa strana è che l'errore appare anche nella copia in locale del sito che ho sul pc ed è una versione abbastanza vecchia che non tocco da mesi.  ???

Sono andato a spulciare tra i log e le righe incriminate sono:

[Wed Feb 27 13:34:47 2013] [error] [client 127.0.0.1] PHP Notice:  Undefined index: user in C:\\www\\forum\\Sources\\Load.php(2184) : eval()'d code on line 170, referer: http://localhost/forum/index.php
[Wed Feb 27 13:34:47 2013] [error] [client 127.0.0.1] PHP Notice:  Undefined index: user in C:\\www\\forum\\Sources\\Load.php(2184) : eval()'d code on line 176, referer: http://localhost/forum/index.php



Sono andato a cercare queste linee di codice nel file Load e sono:

DA RIGA 170 A 176:
// Set a list of common functions.
$ent_list = empty($modSettings['disableEntityCheck']) ? '&(#\d{1,7}|quot|amp|lt|gt|nbsp);' : '&(#021|quot|amp|lt|gt|nbsp);';
$ent_check = empty($modSettings['disableEntityCheck']) ? array('preg_replace(\'~(&#(\d{1,7}|x[0-9a-fA-F]{1,6});)~e\', \'$smcFunc[\\\'entity_fix\\\'](\\\'\\2\\\')\', ', ')') : array('', '');

// Preg_replace can handle complex characters only for higher PHP versions.
$space_chars = $utf8 ? (@version_compare(PHP_VERSION, '4.3.3') != -1 ? '\x{A0}\x{AD}\x{2000}-\x{200F}\x{201F}\x{202F}\x{3000}\x{FEFF}' : "\xC2\xA0\xC2\xAD\xE2\x80\x80-\xE2\x80\x8F\xE2\x80\x9F\xE2\x80\xAF\xE2\x80\x9F\xE3\x80\x80\xEF\xBB\xBF") : '\x00-\x08\x0B\x0C\x0E-\x19\xA0';



Mi sapete aiutare? non sono dove mettere le mani. Grazie

emanuele

Quote from: Neoxxx on February 27, 2013, 07:48:21 AM
Recentemente non ho installato nessuna mod, ho fatto qualche modifica a una mod una settimana fa ma fino a stamattina è andato tutto bene. La cosa strana è che l'errore appare anche nella copia in locale del sito che ho sul pc ed è una versione abbastanza vecchia che non tocco da mesi.  ???
Magari ne hai tolta una e rimosso una colonna dal database. Difficile dirlo.

Quote from: Neoxxx on February 27, 2013, 07:48:21 AM
[Wed Feb 27 13:34:47 2013] [error] [client 127.0.0.1] PHP Notice:  Undefined index: user in C:\\www\\forum\\Sources\\Load.php(2184) : eval()'d code on line 170, referer: http://localhost/forum/index.php
[Wed Feb 27 13:34:47 2013] [error] [client 127.0.0.1] PHP Notice:  Undefined index: user in C:\\www\\forum\\Sources\\Load.php(2184) : eval()'d code on line 176, referer: http://localhost/forum/index.php

Queste righe sono inutili perché hai abilitata la..."template evaluation".
Se il pannello di admin funziona, vai in admin > configurazione > server > generale e metti la spunta a "Disabilita il controllo dei template", quindi riprova a vedere l'errore.
Se non puoi accedere al pannello di admin, vai in phpmyadmin, trova la tabella settings, quindi inserisci una nuova riga, in cui "variable" è disableTemplateEval, mentre "value" è 1.


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

Neoxxx

Fatto come mi hai detto, risultato:

[Wed Feb 27 14:51:16 2013] [error] [client 127.0.0.1] PHP Notice:  Undefined index: user in C:\\www\\forum\\Themes\\default\\languages\\Modifications.english.php on line 170, referer: http://localhost/forum/index.php
[Wed Feb 27 14:51:16 2013] [error] [client 127.0.0.1] PHP Notice:  Undefined index: user in C:\\www\\forum\\Themes\\default\\languages\\Modifications.italian-utf8.php on line 176, referer: http://localhost/forum/index.php
[Wed Feb 27 14:51:16 2013] [error] [client 127.0.0.1] File does not exist: C:/www/favicon.ico
[Wed Feb 27 14:51:35 2013] [error] [client 127.0.0.1] PHP Notice:  Undefined index: user in C:\\www\\forum\\Themes\\default\\languages\\Modifications.english.php on line 170, referer: http://localhost/forum/index.php
[Wed Feb 27 14:51:35 2013] [error] [client 127.0.0.1] PHP Notice:  Undefined index: user in C:\\www\\forum\\Themes\\default\\languages\\Modifications.italian-utf8.php on line 176, referer: http://localhost/forum/index.php
[Wed Feb 27 14:51:35 2013] [error] [client 127.0.0.1] File does not exist: C:/www/favicon.ico



Da quello che capisco è colpa della favicon che però è sempre stata dentro la cartella forum

emanuele

No, quelli non sono gli errori giusti, vai nel pannello di admin e guarda gli errori lì.


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

Neoxxx

Non mi fa accedere a nessuna pagina del forum, neanche al pannello admin  :-[

emanuele

allora guarda in php, tabella log_errors...un po' un casino, ma qualcosa dovresti trovare.


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

Neoxxx

Ok dovremmo esserci:

'4', '1361968304', '0', '127.0.0.1', '?http://localhost/forum/', 'The database value you\'re trying to insert does not exist: oldgroup<br />Function: treasuryGroupCheck', 'dcfad89f7cbf895b1959a75335c2b770', 'critical', 'C:/www/forum/Sources/TreasuryUpdate.php', '49'


è colpa della mod treasury...ora...se io volessi togliere questa mod come faccio che non posso far nulla dal forum?


La funzione incriminata è questa:

function treasuryGroupCheck()
{
global $db_prefix, $smcFunc;
$request1 = $smcFunc['db_query']('','
SELECT user_id, group_id, group_old
FROM {db_prefix}treas_subscribers
WHERE group_end <= {int:groupend}
',
array(
'groupend' => gmmktime(),
)
);

while ($request1 && $row = $smcFunc['db_fetch_row']($request1)) {
$request2 = $smcFunc['db_query']('',"
SELECT additional_groups
FROM {db_prefix}members
WHERE id_member = '$row[0]'
LIMIT 1
",
array()
);
list($additional_groups) = $smcFunc['db_fetch_row']($request2);
$smcFunc['db_free_result']($request2);
$add_groups = implode(',', array_diff(explode(',', $additional_groups), array($row[1],$row[2])));
$result3 = $smcFunc['db_query']('', '
UPDATE {db_prefix}members
SET additional_groups = {string:addgroups}, id_group = {int:oldgroup}
WHERE id_member = {int:mid}
',
array(
'mid' => $row[0],
'addgroups' => $add_groups,
'oldgroup' => $row[2],
)
);
$result4 = $smcFunc['db_query']('', '
DELETE FROM {db_prefix}treas_subscribers
WHERE user_id = {int:uid}
AND group_id = {int:gid}
',
array(
'uid' => $row[0],
'gid' => $row[1],
)
);
}

//Now we set a new checkpoint in Settings
$request5 = $smcFunc['db_query']('','
SELECT user_id, group_id
FROM {db_prefix}treas_subscribers
ORDER BY group_end ASC
LIMIT 1
',
array()
);
if ($smcFunc['db_affected_rows']() == 1) {
list($group_end) = $smcFunc['db_fetch_row']($request5);
$result6 = $smcFunc['db_query']('', '
UPDATE {db_prefix}settings
SET value = {int:gend}
WHERE variable = {string:gcheck}
',
array(
'gend' => $group_end,
'gcheck' => 'treasury_groupcheck',
)
);
} else {
$result6 = $smcFunc['db_query']('', '
UPDATE {db_prefix}settings
SET value = 0
WHERE variable = {string:gcheck}
',
array(
'gcheck' => 'treasury_groupcheck',
)
);
}
$smcFunc['db_free_result']($request5);
}

emanuele

Quindi treasury...ce l'hai installato?
Io proverei, senza però conoscere il codice, a cambiare questa riga:
'oldgroup' => $row[2],
in
'oldgroup' => !empty($row[2]) ? $row[2] : 0,


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

Neoxxx

Grande adesso funziona...almeno riesco a maneggiare il forum, vedo se riesco a sistemare la treasury. Grazie

Advertisement: