Zum Inhalt springen

Logindaten an PHP übergeben

Erstellt am 23. Januar 2004 · 23 Antworten · letzte Antwort am 30. März 2004 · Seite 1 von 2

Tags: felogin, PHP, Frage

wersi77 ·

Hallo Leut,

ich habe da eine etwas schwierigere Sache...
Ich würde gerne ein PHP-Skript von Typo3 aus starten (kein Problem) UND... (jetzt kommt's) die Login-Daten aus dem Typo3-Login weiterverwenden. Nehmen wir an, das PHP-Skript gibt einfach nur User und Passwort vom Frontend-Login wieder. Das würde mir schon reichen...
Vielleicht weiß jemand, wie sowas funzt???

wersi77 ·

Ich hätte also gerne die Frontend-Login-Daten.
NICHT die Backend-Login-Daten!!!

Hintergrund. Nur gewisse User sollen bestimmte Applikationen nutzen können.

Tom-iX ·

moin,

lass dir die $GLOBALS in deinem php-Skript einblenden. print_r($GLOBALS).

und suche deine Logindaten...
so kannste auf die Benutzerdaten auch zugreifen ;-)

wersi77 ·

Und wenn ich einfach nur den aktuellen benutzernamen ausgeben möchte?
Der ECHO-Befehl will dabei natürlich nicht.

echo ["GLOBALS"]["TSFE"]["fe_user"]["user"]["username"];

oder so?

wersi77 ·

Hmmm,...
es wird noch kein Name angezeigt.
Ist das denn die Typo3-Standardkonfiguration?
Ich hab nichts geändert...

wersi77 ·

Hab's hingekriegt...
Für alle die es interessiert:

<?php
$name = $GLOBALS["TSFE"]->fe_user->user["username"];
echo $name;
?>

wersi77 ·

Nächstes Problem!!!
Wie übergebe ich diese Daten an einen Inline Frame im Typo3?
Hat jemand dazu ne Idee?

wersi77 ·

Das gleiche Problem tritt übrigens auch auf, wenn man eine Externe URL ansteuert. Wenn man dann versucht auf die Variablen zuzugreifen, sind diese verschwunden...

oliver29 ·

Als ziemlich heftigen Workaround stelle ich mir folgendes vor:
Wenn ein FE-User eingeloogt ist, gibt es eine globale Variable (im Cookie gespeichert), die per PHP abzufragen ist: [fe_typo_user]. Ist eine Variable in der Art "6e8d5846ae"
Ist der User tatsächlich eingeloggt, so gibt es in der Tabelle fe_session einen Eintrag mit dieser Kennung sowie der User-ID, außerdem noch BLOB-Data, von der ich im Momemt nicht weuiß, wann da was hinterlegt wird.
Über diese User-ID könnte man dann im externen PHP-Skript (im Inline-Frame) dann aus der fe_users wiederum den Usernamen ziehen. Solange kein FE-User eingelogt ist, gibt es keine Variable fe_typo_user, bzw. es gibt keinen Eintrag in fe_Session.

Werde damit mal experimentieren... aber wenn noch jemandem eine sauberere Lösung einfällt: Bitte posten. Danke!

oliver29

oliver29 ·

Wie ich Benutzername in einem Inline-Frame verwende:

1. Eine Seite anlegen, die nicht im Menü auftaucht("not in menu"). Diese Seite bekommt ein eigenes Template, das nur darin besteht, den INhalt dieser Seite auf einer blanken,weißen Seite auszugeben. Also kein Menu oder sonstiges Content des Haupttemplates.

In dieser Seite ein Inhaltselement Typ "PHP Skript" anlegen (evtl. die Extension für externe PHP-Skripts installieren/aktivieren)
Das Skript auf dieser Seite sieht folgendermaßen aus:
<?php
$name = $GLOBALS["TSFE"]->fe_user->user["username"];
include "fileadmin/test1.inc";
?>

Es inkludiert also das eigentliche PHP-Skript, welches dann auf den Usernamen über die Variable $name zugreifen kann.

In diesem Beispiel kann also im Skript test1.inc frei mit der Variable $name gearbeitet werden. Alles, was dieses Skript macht/ausgibt, passiert dann im Inline-Frame.

2. Auf der Seite, in der der Inline-Frame (Extension IFrame) stehen soll, ein entsprechende Inhaltselement "Inline Frame" anlegen und als URL die im ersten Schritt angelegte Seite angeben.

Gibt es neben diesem (umständlichen) Verfahren evtl noch eine andere Möglichkeiten, eine kleinere Applikation in PHP unterhalb/innerhalb von Typo3 zu nutzen, die einerseits den eingeloggten Nutzer übernimmt und andererseits selber auch funktionieren Links/Posts erzeugt? (ohne jetzt eine eigene Extension bauen zu müssen...)

oliver29

wersi77 ·

Wie muß denn nochmal der Code dafür aussehen, wenn man nur den Inhalt angezeigt haben möchte? Also ohne Layoutvorlage....
Sorry für diese Anfängerfrage.

oliver29 ·

Im Setup des Templates:

# Default PAGE object:
page = PAGE
page.typeNum = 0
page.10 < styles.content.get

Und bei "include static" ("Click here to edit whole template record") dann noch "content (default)" hinzufügen.

Gruß
oliver29