Seite 1 von 1

Problem mit session_begin() und session_page

Verfasst: 04.12.2007 20:01
von Roachh
Guten Abend,

ich habe mir eine errorseite in mein phpbb3 forum eingebaut welche ich über eine htaccess datei aufrufe. das funktioniert auch soweit. ABER ich habe festgestellt das diese seite auch aufgerufen wird wenn irgendwo ein bild fehlt oder irgendetwas anderes. Also wenn zb ein bild in einem Post fehlt, wird im hintergrund diese errorseite ausgeführt.
Das Problem was daraus resultiert ist das bei "Wer ist online?" immer nur "Startseite" als aktuelle Tätigkeit steht da die errorseite immer die session_page überschreibt.

ich habe versucht das ganze mit

Code: Alles auswählen

$user->session_begin(false);
zu umgehen, jedoch zeigt das irgendwie keine wirkung.
in der funktion session_begin steht, wenn ich das richtig verstehe, das der parameter false ein überschreiben der session_page verhindert. macht er aber irgendwie nicht.

weiß einer von euch woran das liegen könnte?

danke und mfg

Roach

Verfasst: 04.12.2007 21:14
von Dave
Hi
includes/session.php

Code: Alles auswählen

if ($this->time_now - $this->data['session_time'] > 60 || ($this->update_session_page && $this->data['session_page'] != $this->page['page']))
Da liegt der Fehler... Das müßtest du anpassen.

MfG
Dave

Verfasst: 04.12.2007 21:20
von Roachh
danke für die antwort :),

Code: Alles auswählen

if (($this->update_session_page && $this->time_now - $this->data['session_time'] > 60) || ($this->update_session_page && $this->data['session_page'] != $this->page['page']))
könnte das klappen ? ich teste es einfach mal

Verfasst: 04.12.2007 21:22
von Dave

Verfasst: 04.12.2007 21:31
von Roachh
also ich habe es jetzt an beiden stellen in der session.php geändert aber es klappt irgendwie nicht, ich beobachte das jetzt nich eine weile und dann schau ich weiter :)

Verfasst: 04.12.2007 21:35
von Dave
Ups habe da was übersehen...

Naja.. Ehrlich gesagt habe ich dann auch keine ahnung.

EDIT: Teste einfach mal indem du volgenden Teil auskommentierst (Zeile 625):

Code: Alles auswählen

$sql_ary['session_page'] = (string) substr($this->page['page'], 0, 199);

Verfasst: 04.12.2007 21:58
von Roachh
schade, war so ein schöner ansatz :)

edit: konnte das ein wenig weiter einkreisen :)
das problem tritt nur bei gästen auf, nicht bei registrierten (ob es bei bots so ist, weiß ich nicht da gerade keiner da ist :) )
also das mit dem session_begin(false) klappt fast

Verfasst: 05.12.2007 19:53
von Dave
Übergib mal in der URL die session_id... vieleicht hilft das ja :wink:

Verfasst: 05.12.2007 20:08
von Roachh
Hallo,
okay, der fehler liegt eindeutig bei der htacess weiteleitung wenn eine datei fehlt... wenn ich das session_begin(false); in einer anderen datei benutze, wird die session_page nicht aktualisiert!
könnte ich nicht in der session.php abfragen welche datei sie aufgerufen hat und dann

Code: Alles auswählen

if($page != 'error.php')
{
    update
}
wenn ja: wie und wo könnte ich das machen ? bin leider nicht ganz so fit in php :|