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 
:x

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 :oops:

Wie kann ich das feststellen?

Wilfried

Verfasst: 26.10.2004 10:17
von musashi
Im phpmyadmin stehts