PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Sessions + Geschwindigkeit


Romanday
20.12.2003, 15:45
1.) Sessions ...
Ich frage deshalb so intensiv nach, da ich ein Limit für die Anzahl der aktuellen
Forenbesucher eingestellt habe. Teilweise kommt es vor, das die Fehlermeldung
kommt, der Server sei überlastet. Kann aber nicht ganz zutreffen. Teilweise sind
nur 2 Leute im Board, aber die alten Session Einträge + die Gäste (welche nicht
ins Forum kommen) werden halt mitgezählt.

Ab wann werden die Einträge in der Tabelle Sessions automatisch gelöscht?
Kann man dort irgendwo ein Zeitlimit einstellen? Habe bei Cookie Timeout = 60
eingestellt, bringt aber nicht viel.

Es gibt unter der gleichen UserID verschiedene Sessioneinträge. Sowohl bei Gästen
als auch registrierten Usern. Kann ich das irgenwie auschließen?

Ich möchte das die UserID 0 für den Gast nicht die Möglichkeit hat einen Sessioneintrag
zu erzeugen. Wo kann ich das einstellen? Welches Script muß ich wo modifizieren?

Ist jeder User, der keine Cookies zuläßt automatisch ein Gast mit der UserId 0?

Hat ein User in seinem Profil Cookies ausgeschaltet, wird er als Gast indentifiziert und
erzeugt einen Eintrag in der Tabelle Sessions? Logt er sich danach in mit seinem
Angaben ein, wird noch einmal ein Eintrag in der Tabelle Sessions erzeugt? Wann wird
sein "Gast" Eintrag gelöscht?

Würden alle User Cookies in ihrem Profil aktiviert haben, sinkt dann die Anzahl der
Einträge in der Tabelle Sessions?


2.) Geschwindigkeit
Fals ein unregistriert User, Gast oder jemand falsche Angaben auf der Startseite unseres
geschlossenen Forums macht, möchte ich willentlich den Seitenaufbau
verlangsamen, mit z. b. sleep(5);.

In welchem Script (Zeile?) kann ich die Angaben eintragen?

Mystics
21.12.2003, 15:41
zu 1.)Ab wann werden die Einträge in der Tabelle Sessions automatisch gelöscht?Ist mehr oder weniger vom Zufall abhängig, siehe admin/functions.php: // update user table from session table in bulk
mt_srand ((double) microtime() * 1000000);
if (mt_rand(1,100)=='50') {
$oldsessions=$DB_site->query("SELECT userid,lastactivity FROM session WHERE lastactivity<'".(time()-$cookietimeout)."'");
while ($oldsession=$DB_site->fetch_array($oldsessions)) {
$DB_site->query("UPDATE user SET lastactivity=$oldsession[lastactivity] WHERE userid=$oldsession[userid] AND lastactivity<$oldsession[lastactivity]");
}
$DB_site->query('DELETE FROM session WHERE lastactivity<'.(time()-$cookietimeout));

//searches expire after a week:
$DB_site->query("DELETE FROM search WHERE dateline<".(time()-(7*24*60*60)));
}D.h. ca. nach 100 Aktionen der Benutzer (Seitenaufrufe) wird die Session-Tabelle anhand des Cookie Timeouts gelöscht...bei weniger Besuchern dauert das dementsprechend länger. Du kannst das aber z.B. in das ändern:mt_rand(1,10)=='5'Ist jeder User, der keine Cookies zuläßt automatisch ein Gast mit der UserId 0?Hat ein User in seinem Profil Cookies ausgeschaltet, wird er als Gast indentifiziert und
erzeugt einen Eintrag in der Tabelle Sessions? Ein User hat immer einen Session Eintrag. Wenn er registriert ist, wird er natürlich nicht als Gast identifiziert.Ich möchte das die UserID 0 für den Gast nicht die Möglichkeit hat einen Sessioneintrag
zu erzeugen. Wo kann ich das einstellen? Welches Script muß ich wo modifizieren?admin/sessions.php, du könntest z.B. die "INSERT INTO session" Queries in eine Abfrage packen: if ($bbuserinfo['userid']!=0) {
$DB_site->query("INSERT INTO session [...]
} Würden alle User Cookies in ihrem Profil aktiviert haben, sinkt dann die Anzahl der
Einträge in der Tabelle Sessions?Wäre möglich.Logt er sich danach in mit seinem
Angaben ein, wird noch einmal ein Eintrag in der Tabelle Sessions erzeugt? Nein.

zu 2.)
Keine Ahnung.