Sessions Mangement (tester gesucht)

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.
Dwing
Ehrenadmin
Beiträge: 1965
Registriert: 17.06.2001 02:00

Sessions Mangement (tester gesucht)

Beitrag von Dwing »

Hi.
Ich arbeite bei einem recht großen Board mit. Um das Problem mit der vollen Sessionstabelle zu lösen hab ich nen kleinen Mod geschrieben, welcher die Tabelle wenn sie voll ist automatisch um die ältesten x Sessions erleichtert.

Gibt auch ein kleines Adminpanel dazu. Wenn jemand Zeit hat es zu testen:
http://www.weingarten-net.de/static/files/unstable/
admin_sessions.php

Nur hochladen. Wär schön wenn einer die Ergebnisse postet.
Benutzeravatar
Underhill
Mitglied
Beiträge: 1180
Registriert: 24.09.2003 11:40
Wohnort: 742 Evergreen Terrace

Beitrag von Underhill »

Los Wochos,

- einbinden des Mods ist super easy
- leeren der Sessions ist auch Ok

Fehler bekomme ich aber bei OPTIMIZE und REPAIR.

Du solltest ggf. den Punkt (zum Addieren des Strings)

Code: Alles auswählen

$sql .= 'REPAIR table ' . SESSIONS_TABLE . ';';
wegmachen... (Dann klappte es bei mir)

Nutze PHP 4.3.3 + mysql 4.0.14b gegen W2K-SRVSP4 Ger


Ausserdem finde ich die Aussage:
Verbleibende bis zur Löschung: x
zweideutig... Da wuerde ich von einer Automatischen Loeschung ausgehen...


Aber sonst : Top!


Gruss
Underhill
Dwing
Ehrenadmin
Beiträge: 1965
Registriert: 17.06.2001 02:00

Beitrag von Dwing »

Underhill hat geschrieben:Los Wochos,

- einbinden des Mods ist super easy
- leeren der Sessions ist auch Ok

Fehler bekomme ich aber bei OPTIMIZE und REPAIR.

Du solltest ggf. den Punkt (zum Addieren des Strings)

Code: Alles auswählen

$sql .= 'REPAIR table ' . SESSIONS_TABLE . ';';
wegmachen... (Dann klappte es bei mir)

Nutze PHP 4.3.3 + mysql 4.0.14b gegen W2K-SRVSP4 Ger


Ausserdem finde ich die Aussage:
Verbleibende bis zur Löschung: x
zweideutig... Da wuerde ich von einer Automatischen Loeschung ausgehen...


Aber sonst : Top!


Gruss
Underhill
Danke!
Das mit dem automatischen löschen stimmt schon. Die Sessions Tabelle ist bei 550 Einträgen voll.
Der Mod wird jedesmal wenn 100 Einträge erreicht sind, die ältesten 50 Sessions Löschen.
Benutzeravatar
Underhill
Mitglied
Beiträge: 1180
Registriert: 24.09.2003 11:40
Wohnort: 742 Evergreen Terrace

Beitrag von Underhill »

Hi,
Dwing hat geschrieben:Der Mod wird jedesmal wenn 100 Einträge erreicht sind, die ältesten 50 Sessions Löschen.
Ah - "wird" :wink:

aber nur aus Interesse:

Wie willst du das Autoloeschen realisieren? Bei Aufruf ueber ACP oder Cron-Job?


Danke und Gruss
Underhill
Dwing
Ehrenadmin
Beiträge: 1965
Registriert: 17.06.2001 02:00

Beitrag von Dwing »

nö, durch die common.php

Die Überprüft bei jedem Seitenaufruf die Anzahl der vorhandenen Sessions.
Wenn über 100, dann wird gelöscht.
Evtl. setzt ich die 100 noch etwas hoch. Ich muss noch geeignete Werte finden.

Der Code steht aber schon.

Code: Alles auswählen

//
// Get data from sessions tale
//
$sql = "SELECT *
	FROM " . SESSIONS_TABLE;
if ( !($result = $db->sql_query($sql)) )
{
	message_die(CRITICAL_ERROR, 'Error while selecting sessions', '', __LINE__, __FILE__, $sql);
}

// Counting the sessions
$session_count = $db->sql_numrows($result);

//
// Delete old sessions
//
$sql = 'DELETE FROM ' . SESSIONS_TABLE . '
	ORDER BY session_start
	LIMIT 50;
if ( $session_count >= '100' )
{
	if ( !$db->sql_query($sql) )
	{
		message_die(CRITICAL_ERROR, 'Error clearing sessions table', '', __LINE__, __FILE__, $sql);
	}
}
Elo_

Beitrag von Elo_ »

Mit diesen zusätzlichen Änderungen funktioniert er auch bei mir:

Code: Alles auswählen

    <tbody>
      <tr>
        <th class="thcornerl" height="22">Aktionen</th>
      </tr>
      <tr>
	<td class="row2"><div align="left"><a href="<?php print append_sid("admin_sessions.$phpEx"); ?>?mode=delete_all">Alle Sessions löschen</a></div></td>
      </tr>
      <tr>
	<td class="row1"><div align="left"><a href="<?php print append_sid("admin_sessions.$phpEx"); ?>?mode=delete_limit"><?php print $limit ?> Sessions löschen</a></div></td>
      </tr>
      <tr>
	<td class="row2"><div align="left"><a href="<?php print append_sid("admin_sessions.$phpEx"); ?>?mode=optimize">Tabelle optimieren</a></div></td>
      </tr>
      <tr>
	<td class="row1"><div align="left"><a href="<?php print append_sid("admin_sessions.$phpEx"); ?>?mode=repair">Tabelle reparieren</a></div></td>
      </tr>
    </tbody>
Elo
Benutzeravatar
Underhill
Mitglied
Beiträge: 1180
Registriert: 24.09.2003 11:40
Wohnort: 742 Evergreen Terrace

Beitrag von Underhill »

@Dwing:

Die Idee mit der common.php finde ich gut...

Schreib' doch die Anzahl der Sessions als Variable ueber das ACP in der Tabelle "_config" - das schein mir relativ ungefaehrlich...


Gruss
Underhill
Dwing
Ehrenadmin
Beiträge: 1965
Registriert: 17.06.2001 02:00

Beitrag von Dwing »

Underhill hat geschrieben:@Dwing:

Die Idee mit der common.php finde ich gut...

Schreib' doch die Anzahl der Sessions als Variable ueber das ACP in der Tabelle "_config" - das schein mir relativ ungefaehrlich...


Gruss
Underhill
Hatte ich ursprünglich vor, allerdings werden dann viele die keine Ahnung davon haben dran rumspielen und evtl. alles zerschießen...
TheSteffen
Mitglied
Beiträge: 115
Registriert: 16.09.2003 13:36
Wohnort: Egeln
Kontaktdaten:

Beitrag von TheSteffen »

Habe Ihn bei mir auch getestet und funktioniert ganz gut.

Nur das optimieren klappt nicht trotz der Herrausnahme des obigen Codes.
Folgende Fehlermeldung:

Code: Alles auswählen

SQL Error : 1064 You have an error in your SQL syntax near 'table phpbb_sessions' at line 2

SELECT * FROM phpbb_sessionsOPTIMIZE table phpbb_sessions;

Line : 125
File : /data/httpd/htdocs/phpBB2/admin/admin_sessions.php
Gruß
Steffen
Benutzeravatar
merlin_76
Mitglied
Beiträge: 15
Registriert: 09.04.2003 16:11
Kontaktdaten:

Beitrag von merlin_76 »

Hey...

Gibt es schon eine fertige und getestete Lösung für das automatische Löschen der Session-Table??

Hab folgendes Problem: http://www.phpbb.de/viewtopic.php?t=38616&highlight=

Besten Dank
Thomas
Antworten

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