Seite 1 von 2

sid an Link hängen

Verfasst: 18.02.2008 17:01
von Ogniquok
Hallo,
Meine Frage bezieht sich indirekt auf die "Vorlage für in phpBB eingebundene Seiten". Und zwar hab ich eine Site mit Links, die über ne index.php aufgerufen werden (z.B. index.php?page=Testseite). Nun möchte ich an diesen Link noch die SessionID anhängen (z.B. index.php?page=Testseite&sid=1234567890).
Mit append_sid('index.php?page=Testseite') geht das nicht richtig, dadurch wird seltsamerweise jeder Link gleich.
Welche Möglichkeit gibt es noch? Oder mach ich was falsch? Bzw. welche Möglichkeit hab ich noch, damit ich "angemeldet" bleibe und die Session nicht zerstört wird?

Ich hab nur folgenden Code von der Vorlage in die index.php eingebaut:

Code: Alles auswählen

// Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Session auslesen und Benutzer-Informationen laden
$user->session_begin();
$user->setup();
$auth->acl($user->data);

Verfasst: 18.02.2008 17:09
von nickvergessen

Code: Alles auswählen

$url = append_sid("{$phpbb_root_path}index.$phpEx", 'page=Testseite');
und dann einfach $url benutzen

Verfasst: 18.02.2008 17:46
von Ogniquok
Erstmal danke.
So geht es aber auch nicht. Das Problem ist ja, dass die Website nicht ins Forum eingebaut ist. Das Forum liegt nur in einem separatem Unterordner. Ich will ja praktisch nur die Berechtigungen der User des Forums auslesen, und ich dachte, dafür brauch ich die SID. Wenn ich die ja weglasse, bin ich ausgeloggt. Und das will ich verhindern. Und wenn man nicht eingeloggt ist, will ich ein Login-Formular einbauen.
Geht das überhaupt so, wie ich mir das Vorstelle? Also praktisch verhindern, dass die Cookie-Session verfällt.

Verfasst: 20.02.2008 14:53
von Ogniquok
Man, wie schnell hier ein Beitrag auf die 3. Seite rutschen kann...^^

Hat denn keiner mehr eine Idee?
Nochmal kurz mein Vorhaben zusammengefasst: Ich will verhindern, dass ich ausgeloggt werde, sobald ich von meinem Forum auf meine HP wechsle.

Verfasst: 21.02.2008 20:53
von Ogniquok
Kann denn keiner was dazu sagen?

Verfasst: 21.02.2008 21:32
von gn#36
Da gibt es eigentlich nicht allzuviele Möglichkeiten. Die einfachste davon ist wohl, nach der Vorlage die Standard-Dateien einzubinden und dann eben die Funktion zu verwenden.

Problematisch wird das nur, wenn ein paar Funktionsnamen oder Klassen miteinander kollidieren und inkompatibel sind. Dann kannst du eigentlich nur selber was basteln, du brauchst eine Verbindung zur Datenbank des Forums und musst dann eben die Session ID des Users aus der Session Tabelle auslesen (bzw. andersherum den User per Session-Tabelle herausfinden).

Vermutlich solltest du dazu mal einen genaueren Blick auf die sessions.php im includes Ordner werfen, evtl. kannst du auch einfach Teile davon übernehmen die dann den Rest überflüssig machen.

Verfasst: 22.02.2008 17:55
von Ogniquok
Ok,danke!
Ich seh's mir mal an und bastle ein wenig, meld mich, wenn ich wieder was brauch :D

Verfasst: 16.03.2008 12:31
von Ogniquok
So, da ich jetzt wieder mehr zeit habe, hab ich noch mal getestet.

Der Login erfolgt so:

Code: Alles auswählen

echo '<a href="../phpBB3/ucp.php?mode=login&redirect=../index.php?page=Home">[Login]</a>';
Die Ordnerstruktur ist immer noch so, wie oben beschrieben. Wenn ich vom Login wieder auf meine Website weitergeleitet werde, steht in der Adressleiste der Link mit SID, so wie es sein soll. Aber an die Links, die auf meiner Website stehen, sind so aufgebaut:

Code: Alles auswählen

echo '<a href="'.append_sid("index.$phpEx", 'page=Home').'">Home</a>';
Es wird aber keine SID mehr angehängt (ist ja im Forum genauso).
Warum ist das so, bzw. kann man das ändern, dass die SID immer angehängt ist?
Auf meinem "localhost" mit XAMPP geht's irgendwie, auf dem Webspace nicht...
Weiß jemand Rat???

Verfasst: 16.03.2008 12:48
von gn#36
Die SID wird nur dann angehängt, wenn es mit den Cookies nicht klappt. Zur Not häng sie manuell an:

Code: Alles auswählen

append_sid($url, $params = false, $is_amp = true, $session_id = false)
Den letzten Parameter auf $user->session_id und schon sollte es forciert werden wenn ich mich nicht irre.

Verfasst: 16.03.2008 17:39
von Ogniquok
Also soll ich den Teil in der functions.php ändern?
Was genau soll ich denn da mit $user->session_id machen?