Nutzung von userdata in externem Bereich

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
UnhallowedOne
Mitglied
Beiträge: 2
Registriert: 03.11.2005 11:44

Nutzung von userdata in externem Bereich

Beitrag von UnhallowedOne »

Hi, mein erstes Mal hier :oops: 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:
  • 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";
	}
?>
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:
  • 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);
Ist bestimmt eine einfache Lösung, aber jeder fängt mal klein an und über einen Hinweis zur Vermeidung der Meldungen wär ich sehr dankbar :)


UO
UnhallowedOne
Mitglied
Beiträge: 2
Registriert: 03.11.2005 11:44

Beitrag von UnhallowedOne »

Ich Depp, oben hab ichs sogar geschrieben "mit folgendem Inhalt im Body", und obwohl ich eine Lösung dazu schonmal wo gelesen habe ist es mir nicht aufgefallen: Ich hab mich engstirnig auf den PHP-Code konzentriert und die Standard-HTML-Angaben oben und unten (html-, head-, body-tags) einfach dringelassen. Rausgelöscht, hochgeladen, passt perfekt.
Sogesehen habt ihr mir doch geholfen, es stand ja irgendwo :D OK, in diesem Sinne! :D

UO
Antworten

Zurück zu „Coding & Technik“