sql fehler beim userpassword ändern: Error removing auto-log

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
darkseed111
Mitglied
Beiträge: 2
Registriert: 01.06.2007 12:14

sql fehler beim userpassword ändern: Error removing auto-log

Beitrag von darkseed111 »

hallo zusammen !

ich habe bei meinem board seit heute das problem das sich keine userpasswörter mehr ändern lassen. wenn ich das probiere bekomme ich folgenden fehler:

phpBB : Critical Error

Error removing auto-login keys

DEBUG MODE

SQL Error : 1146 Table 'ehj.SESSIONS_KEYS_TABLE' doesn't exist

DELETE FROM SESSIONS_KEYS_TABLE WHERE user_id = 20

Line : 420
File : sessions.php


die tabelle gab es wirklich nicht. :(
ich habe sie angelegt , doch das brachte auch keine besserung.
kann mir da vieleicht jemand helfen ?

hier noch der entsprechende code aus der datei :

/**
* Reset all login keys for the specified user
* Called on password changes
*/
function session_reset_keys($user_id, $user_ip)
{
global $db, $userdata;

$key_sql = ($user_id == $userdata['user_id'] && !empty($userdata['session_key'])) ? "AND key_id != '" . md5($userdata['session_key']) . "'" : '';

$sql = 'DELETE FROM ' . SESSIONS_KEYS_TABLE . '
WHERE user_id = ' . (int) $user_id . "
$key_sql";

if ( !$db->sql_query($sql) )
{
message_die(CRITICAL_ERROR, 'Error removing auto-login keys', '', __LINE__, __FILE__, $sql);
}

$where_sql = 'session_user_id = ' . (int) $user_id;
$where_sql .= ($user_id == $userdata['user_id']) ? " AND session_id <> '" . $userdata['session_id'] . "'" : '';
$sql = 'DELETE FROM ' . SESSIONS_TABLE . "
WHERE $where_sql";
if ( !$db->sql_query($sql) )
{
message_die(CRITICAL_ERROR, 'Error removing user session(s)', '', __LINE__, __FILE__, $sql);
}

if ( !empty($key_sql) )
{
$auto_login_key = dss_rand() . dss_rand();

$current_time = time();

$sql = 'UPDATE ' . SESSIONS_KEYS_TABLE . "
SET last_ip = '$user_ip', key_id = '" . md5($auto_login_key) . "', last_login = $current_time
WHERE key_id = '" . md5($userdata['session_key']) . "'";

if ( !$db->sql_query($sql) )
{
message_die(CRITICAL_ERROR, 'Error updating session key', '', __LINE__, __FILE__, $sql);
}

// And now rebuild the cookie
$sessiondata['userid'] = $user_id;
$sessiondata['autologinid'] = $autologin_id;
$cookiename = $board_config['cookie_name'];
$cookiepath = $board_config['cookie_path'];
$cookiedomain = $board_config['cookie_domain'];
$cookiesecure = $board_config['cookie_secure'];

setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);

$userdata['session_key'] = $auto_login_key;
unset($sessiondata);
unset($auto_login_key);
}
}



danke schonmal im voraus

tim
Benutzeravatar
Blauvogel
Mitglied
Beiträge: 31
Registriert: 30.05.2007 11:17

Beitrag von Blauvogel »

Hallo,

die Variable SESSIONS_KEYS_TABLE wird normalerweise in der includes/constants.php definiert.

Da sollte dann etwas in der Art stehen:

Code: Alles auswählen

define('SESSIONS_KEYS_TABLE', $table_prefix.'sessions_keys');
Falls nicht, trag es testweise nach.
Die Tabelle phpbb_session_keys muß natürlich in der DB vorhanden sein.
Es grüßt
Blauvogel
darkseed111
Mitglied
Beiträge: 2
Registriert: 01.06.2007 12:14

Beitrag von darkseed111 »

die table war bei mir nicht vorhanden hab e sie aber per mysqladmin eingefügt.
so. ich habe einfach mal das
define('SESSIONS_KEYS_TABLE', $table_prefix.'sessions_keys');
vorne in der datei eingefügt , weil sonst nichts in der richtung zu finden war und es geht nun.
bleibt nur die frage warum es gefehlt hat und was noch alles fehlt ^^
vieleicht sollte ich nochmal die orginaldateien runterladen und die vorhandenen dadurch ersetzen ...

vielen dank schonmal für die hilfe

tim
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“