MyBB.de Forum

Normale Version: Den angemeldeten Benutzer auf einer myBB Extraseite mit Namen ansprechen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Ich habe mir eine Modifikation oder besser gesagt ein Handbuch heruntergeladen,
welches beschreibt, wie ich eine eigene Seite zu myBB hinzufügen kann. Das habe ich auch gemacht, in dem ich die php-Vorlage des Handbuchs einfach in mein Forum Verzeichnis kopiert habe und ein Template angelegt habe (auch nach der Vorlage), welches mit meiner Extra myBB PHP Seite verknüpft wurde. Wenn ich jetzt diese "hallo.php" aufrufe erscheint eine Seite im MyBB Stil mit dem Forenlogo, der Fuß- und Kopfzeile von myBB und dazwischen befindet sich mein frei gewählter Inhalt, den ich im Template festgelegt habe, in diesem Fall eine Willkommen auf der Seite für Gäste und neu gekommene Benutzer.

Mit dieser Codezeile bekomme ich den angemeldeten Benutzer
$hallousername=$mybb->user['username'];
Wenn ich jetzt {$hallousername} im Template einfüge klappt das normalerweise,
dass ich den Namen dort stehen sehe.

Nun habe ich die gleiche Seite, diesmal als "index.php" aber nun außerhalb meines Forumverzeichnis auf der Startebene der Webseite. Im Verzeichnis "/forum" befindet sich die bereits funktionierende Datei. In der index.php habe ich das Verzeichnis zur global.php richtig angepasst und es erscheint auch die Navigation und alles andere korrekt. Ich kann auch die myBB settings im Template abrufen.
Aber $hallousername ist und bleibt mir außerhalb ein Leerstring. Warum?

Also bei zusätzlich hinzugefügten Seiten zu myBB außerhalb des Forumverzeichnisses lassen sich keine Benutzerdaten wie Benutzername und Benutzernummer erfassen, sehe ich das richtig?
Oder fehlt mir noch etwas?
Also die gleiche Datei würde im Forumverzeichnis funktionieren,
das habe ich bereits probiert. Es kommen auch keine Fehler oder so.
Aber diesmal brauche ich sie eben einmal außerhalb des Forum Verzeichnisses.
Ich hoffe ihr habt verstanden was jetzt mein Problem ist.
Benutze doch gleich $mybb->user['username'] im Template. Wink
Ja klar das ginge auch mit {$mybb->user['username'] }. Ich habe mir nur die Variable gebastelt, um es einfacher zum Schreiben zu machen Wink
Genau diese myBB-Variable ($mybb->user['username']) enthält komischerweise einen Leerstring in meiner "index.php" außerhalb des Forumverzeichnisses, obwohl mein Testbenutzer angemeldet ist.
Das diese bei Gästen einen Leerstring enthält ist mir klar.
Warum diese nun einen Leerstring enthält, wenn meine zusätzliche myBB Seite außerhalb von ForumDir
liegt, das ist mir schleierhaft.
Es kann sein, dass die Cookies aus dem Forum dort nicht gelten.
Das bedeutet dann, dass man diese Information auf einer Seite außerhalb des Forum Verzeichnisses nicht bekommen kann, oder könnte ich die Gültigkeit der Cookies irgendwie erweitern bzw. wie würde ich das am
besten tun?
Beachte einfach den Cookie-Pfad, den du im ACP angegeben hast. In Unterordner sind die Cookies verfügbar, in welchen darüber nicht.
Danke, es hat geklappt. Mensch, die Cookies sind ja ganz wichtig, da wäre ich nie drauf gekommen. Smile
Du solltest $mybb->user['username'] vor der Ausgabe aber noch durch htmlspecialchars_uni() schicken, um XSS-Angriffe zu unterbinden.
Danke Michael, das habe ich jetzt nachgeholt, das ist ein sehr wertvoller Tipp.
Wieso was könnte sich böses in einer MyBB Variablen befinden?
Könntest Du mir das bitte näher erklären was es damit (mit XSS) auf sich hat?
Ich dachte nämlich, dass myBB Variablen sicher sind.

EDIT:
Aber klar doch! Die Cookies. Da könnte mir ja jemand ein Cookie XY mit
bösartigem Inhalt unterschieben, das irgendwelche Scripte in die Variable
"Username" einschleust. Oder habe ich das nun doch falsch verstanden?
Wenn der Benutzername HTML enthalten würde, was aber gar nicht erlaubt ist Wink , dann würde das HTML auch so angezeigt. Da könnte man dann z.B. bösartigen Javascript-Code einbauen.
Das ist auf jeden Fall sinnvoll, wobei es gerade bei dieser Variable wohl auch ohne gehen würde...
Seiten: 1 2