Nutzung von userdata in externem Bereich
Verfasst: 03.11.2005 12:11
Hi, mein erstes Mal hier
Ich hab schon einiges rumgelesen, aber so ganz kam ich nicht auf die Lösung zu meinem Problem, ich werd mal anfangen die Sachlage zu erläutern:
Rein theoretisch funzt das auch soweit, ich starte also meinen Browser (Firefox), gehe auf mein Forum und logge mich ein. Danach öffne ich die test.php und es erscheint mein Username "UnhallowedOne". Logge ich mich wieder aus lese ich "Gast". Gut dachte ich mir, jetzt gibts nur ein Problem, aufgeteilt in zwei Fälle:

UO

- auf meiner Seite ist ein phpbb-Forum
- ich will in anderen Bereichen meiner Page bereits angemeldete Nutzer mit ihrem Namen begrüssen, nicht angemeldete mit "Gast"
- zu diesem Zwecke habe ich im Hauptverzeichnis vom Forum eine Datei namens test.php erstellt, mit folgendem Inhalt im Body:
Code: Alles auswählen
<?php
//Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
//Session auslesen und Benutzer-Informationen laden
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
if($userdata['session_logged_in'])
{
echo $userdata["username"];
}
else
{
echo "Gast";
}
?>
- Fall 1 - ausgeloggt, kein Browser offen, Aufruf der test.php VOR dem Forum:
Warning: Cannot modify header information - headers already sent by (output started at /mnt/kw2/08/124/00000018/htdocs/forum/test.php:10) in /mnt/kw2/08/124/00000018/htdocs/forum/includes/sessions.php on line 329
Warning: Cannot modify header information - headers already sent by (output started at /mnt/kw2/08/124/00000018/htdocs/forum/test.php:10) in /mnt/kw2/08/124/00000018/htdocs/forum/includes/sessions.php on line 330
Gast
"Gast" wird angezeigt, aber davor ist eben diese Fehlermeldung. Gehe ich anschliessend auf LOGIN im Forum, melde mich an und aktualisiere die test.php erscheint "UnhallowedOne" ganz normal. Nach dem Ausloggen und erneuter Aktualisierung erscheint "Gast" ohne Meldungen.
Die Zeilen 329 und 330 beinhalten:Code: Alles auswählen
setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure); setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure);
- Fall 2 - Browser geschlossen, eingeloggt (Autologin), Starten des Browsers, Aufruf von test.php VOR Betreten des Forums:
Warning: Cannot modify header information - headers already sent by (output started at /mnt/kw2/08/124/00000018/htdocs/forum/test.php:10) in /mnt/kw2/08/124/00000018/htdocs/forum/includes/sessions.php on line 206
Warning: Cannot modify header information - headers already sent by (output started at /mnt/kw2/08/124/00000018/htdocs/forum/test.php:10) in /mnt/kw2/08/124/00000018/htdocs/forum/includes/sessions.php on line 207
UnhallowedOne
"UnhallowedOne" wird angezeigt, aber mit Fehlermeldung wie oben gesehen. Betrete ich daraufhin mein Forum und aktualisiere test.php sind die Meldungen weg und kommen auch nicht wieder (sofern der Browser offen bleibt).
Die Zeilen 206 & 207 beinhalten abermals:Code: Alles auswählen
setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure); setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure);

UO