Seite 2 von 3
sessions.php
Verfasst: 26.10.2004 07:19
von Wilfried_S
Hallo,
pardon, aber man kann durchaus ungeduldig werden wenn das Teil nicht läuft und man allein nicht weiterkommt.
Also, hier dann nochmals meine sessions.php
http://www.schaedlings-hotline.de/test/sessions_php.txt
Gruß Wilfried
Verfasst: 26.10.2004 08:38
von musashi
Ist da nicht in Zeile 189 ein
zuviel?
Sonst teste halt einfach mal indem Du die Original sessions.php hochlädst.
Verfasst: 26.10.2004 08:57
von Wilfried_S
Hi !
Wenn ich das
} wegmache erhalte ich diese Meldung:
Code: Alles auswählen
Parse error: parse error, unexpected $ in /homepages/6/d35473726/htdocs/schaedlings-hotline/phpbb/includes/sessions.php on line 427
und bei der Originalen sessions.php sieht es dann wieder so aus:
SQL Error : 1062 Duplicate entry 'e5' for key 1
Code: Alles auswählen
INSERT INTO phpbb_sessions (session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in) VALUES ('e5b433db50c992bb868d82656664c301', -1, 1098773932, 1098773932, 'd9e324fc', -1, 0)
Line : 158
File : /homepages/6/d35473726/htdocs/schaedlings-hotline/phpbb/includes/sessions.php
Gruß Wilfried
Verfasst: 26.10.2004 09:03
von musashi
Dann wieder alles rückgängig.
Habe in nem anderen Board folgenden Ansatz gesehen, teste das mal:
Finde
Code: Alles auswählen
message_die(CRITICAL_ERROR, 'Error creating new session', '', __LINE__, __FILE__, $sql);
Ersetze durch:
Code: Alles auswählen
$error = TRUE;
if (SQL_LAYER == "mysql" || SQL_LAYER == "mysql4")
{
$sql_error = $db->sql_error($result);
if ($sql_error["code"] == 1114)
{
$result = $db->sql_query('SHOW TABLE STATUS LIKE "'.SESSIONS_TABLE.'"');
$row = $db->sql_fetchrow($result);
if ($row["Type"] == "HEAP")
{
if ($row["Rows"] > 2500)
{
$delete_order = (SQL_LAYER=="mysql4") ? " ORDER BY session_time ASC" : "";
$db->sql_query("DELETE QUICK FROM ".SESSIONS_TABLE."$delete_order LIMIT 50");
}
else
{
$db->sql_query("ALTER TABLE ".SESSIONS_TABLE." MAX_ROWS=".($row["Rows"]+50));
}
if ($db->sql_query($sql))
{
$error = FALSE;
}
}
}
}
if ($error)
{
message_die(CRITICAL_ERROR, "Error creating new session", "", __LINE__, __FILE__, $sql);
}
Verfasst: 26.10.2004 09:31
von Wilfried_S
Moin moin,
hab den Code eingebaut und hochgladen. Nun kommt diese Meldung:
$error = TRUE;
Code: Alles auswählen
if (SQL_LAYER == "mysql" || SQL_LAYER == "mysql4")
{
$sql_error = $db->sql_error($result);
if ($sql_error["code"] == 1114)
{
$result = $db->sql_query('SHOW TABLE STATUS LIKE "'.SESSIONS_TABLE.'"');
$row = $db->sql_fetchrow($result);
if ($row["Type"] == "HEAP")
{
if ($row["Rows"] > 2500)
{
$delete_order = (SQL_LAYER=="mysql4") ? " ORDER BY session_time ASC" : "";
$db->sql_query("DELETE QUICK FROM ".SESSIONS_TABLE."$delete_order LIMIT 50");
}
else
{
$db->sql_query("ALTER TABLE ".SESSIONS_TABLE." MAX_ROWS=".($row["Rows"]+50));
}
if ($db->sql_query($sql))
{
$error = FALSE;
}
}
}
}
if ($error)
{
message_die(CRITICAL_ERROR, "Error creating new session", "", __LINE__, __FILE__, $sql);
}
Die sessions.php, so wie sie z.Zt. im Netz steht sieht nun so aus:
http://www.schaedlings-hotline.de/test/sessions_php.txt
Wilfried
Verfasst: 26.10.2004 09:44
von musashi
Hmm.
Welcher Tabellentyp ist denn Deine phpbb_sessions Tabelle?
Verfasst: 26.10.2004 10:03
von Wilfried_S
Hi,
Tabellentyp = mysql. Die Tabelle habe ich schon manuel entleert.
Gruß Wilfried
Verfasst: 26.10.2004 10:09
von musashi
Ich meinte MyISAM oder HEAP?
Verfasst: 26.10.2004 10:15
von Wilfried_S
hm... keine Ahnung
Wie kann ich das feststellen?
Wilfried
Verfasst: 26.10.2004 10:17
von musashi
Im phpmyadmin stehts