FrontendUser auslesen?
FrontendUser auslesen?
Hi, Leute,
ich habe mir verschiedene Gruppen mit Usern angelegt. Das Klappt auch wunderbar. Jetzt möchte ich auf der Seite nach dem Login einen Satz zeigen der etwa so aussieht.
"Willkommen %username% du bist in der %gruppe%"
Die Frage ist nur wie komm ich in meinem eigenen Modul an die Daten von dem aktuell eingeloggten Benutzer?
Vielen dank für eure Hilfe!
ich habe mir verschiedene Gruppen mit Usern angelegt. Das Klappt auch wunderbar. Jetzt möchte ich auf der Seite nach dem Login einen Satz zeigen der etwa so aussieht.
"Willkommen %username% du bist in der %gruppe%"
Die Frage ist nur wie komm ich in meinem eigenen Modul an die Daten von dem aktuell eingeloggten Benutzer?
Vielen dank für eure Hilfe!
Re: FrontendUser auslesen?
Hallo Enrico,
schau dir mal folgendes Beispiel an:
Habe es nicht getestet, sollte aber funktionieren.
Du hast die Klasse FrontendUser und FrontendGroup um an die nötigen Informationen ranzukommen. Kannst es auch mit einer eigenen SQL-Abfrage machen...
Gruß
xmurrix
schau dir mal folgendes Beispiel an:
Code: Alles auswählen
if ($auth->auth['uid'] != 'nobody') {
cInclude('classes', 'class.frontend.users.php');
cInclude('classes', 'class.frontend.groups.php');
$name = '';
$groups = array();
// Load user
$oFeUser = new FrontendUser();
if ($oFeUser->loadByPrimaryKey($auth->auth['uid'])) {
$name = $oFeUser->get('username');
// Load all groups
$groupsIds = $oFeUser->getGroupsForUser();
foreach ($groupsIds as $groupId) {
$oFeGroup = new FrontendGroup();
if ($oFeGroup->loadByPrimaryKey($groupId)) {
$groups[] = $oFeGroup->get('groupname');
}
}
}
if (count($groups) > 1) {
echo "Willkommen $name du bist in den Gruppen " . implode(', ', $groups);
} elseif (count($groups) == 1) {
echo "Willkommen $name du bist in den Gruppe " . $groups[0];
} else {
echo "Willkommen $name";
}
}
Du hast die Klasse FrontendUser und FrontendGroup um an die nötigen Informationen ranzukommen. Kannst es auch mit einer eigenen SQL-Abfrage machen...
Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
Re: FrontendUser auslesen?
Vielen dank, genau so funktioniert es. Das ich über FrontendUser und die Collection an die Infos komme war mir klar. Das $auth->auth['uid'] ist für mich entscheident gewesen. Danke nochmal!
Re: FrontendUser auslesen?
...Ich hätte da noch eine kleine andere Frage. Wenn ich als eingeloggter Frontenduser ein formular abschicke, dann schmeisst er mich raus. Wieso ist das so? und wie bekomm ich es hin, das eingeloggte Frontenduser ein Formular abschicken können und dann wieder auf der gleichen seite landen?
Re: FrontendUser auslesen?
Hallo Murat,
Gruß
René
Änder das mal inxmurrix hat geschrieben:Code: Alles auswählen
if ($auth->auth['uid'] == 'nobody') {
Code: Alles auswählen
if ($auth->auth['uid'] != 'nobody') {
René
Re: FrontendUser auslesen?
Danke für die Info, habe es korrigiert.Spider IT hat geschrieben:...Änder das mal in...Code: Alles auswählen
if ($auth->auth['uid'] != 'nobody') {
Gruß
Murat
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
Re: FrontendUser auslesen?
...Ich hätte da noch eine kleine andere Frage. Wenn ich als eingeloggter Frontenduser ein Formular abschicke, dann schmeisst er mich raus. Wieso ist das so? und wie bekomm ich es hin, das eingeloggte Frontenduser ein Formular abschicken können und dann wieder auf der gleichen seite landen?
Überlesen? Oder soll ich für die Frage einen neuen Thread aufmachen, da es ja nur bedingt mit dem Thema zutun hat.
Überlesen? Oder soll ich für die Frage einen neuen Thread aufmachen, da es ja nur bedingt mit dem Thema zutun hat.
Re: FrontendUser auslesen?
Da ich nicht weiß, wie dein Code aussieht, ist es schwierig. Wen du mein meinem Beispiel von vorhin verwendet hast, da war noch ein Fehler drin, die Bedingung am Anfang muss so lauten, wie René es beschrieben hat.Enrico hat geschrieben:...Wenn ich als eingeloggter Frontenduser ein formular abschicke, dann schmeisst er mich raus. Wieso ist das so? und wie bekomm ich es hin, das eingeloggte Frontenduser ein Formular abschicken können und dann wieder auf der gleichen seite landen?
http://forum.contenido.org/viewtopic.ph ... 70#p156770
Vielleicht ist das das Problem...
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
Re: FrontendUser auslesen?
Code: Alles auswählen
<?php
cInclude('classes', 'class.frontend.users.php');
cInclude('classes', 'class.frontend.groups.php');
if (!isset($db)) {
$db = new DB_Contenido();
}
if (!isset($tpl)) {
$tpl = new Template();
}
$tpl->reset();
$oFeUser = new FrontendUser();
if ($oFeUser->loadByPrimaryKey($auth->auth['uid'])) {
$name = $oFeUser->get('username');
$groups = $oFeUser->getGroupsForUser();
}
$sFormAction = $sess->url("front_content.php?idcat=$idcat&idart=$idart");
$tpl->set('s', 'ACTION', $sFormAction );
$tpl->set('s', 'NAME', $name);
print_r($_POST);
switch($groups[0])
{
case 1: // Mitarbeiter
echo 'mitarbeiter';
break;
case 2: // Lieferanten
echo 'lieferanten';
break;
default:
echo 'Keine gültige Gruppe';
break;
}
$tpl->generate('templates/mein_konto.html');
?>
Code: Alles auswählen
<h3>{NAME}</h3>
<form action="{ACTION}" method="post">
<div>
<label>Benutzername:</label>
<input type="text" value="{NAME}" name="username">
</div>
<div>
<label>Passwort:</label>
<input type="password" value="" name="password">
</div>
<div>
<label></label>
<input type="submit" value="Speichern" name="submit">
</div>
</form>
Meine Frage daher, wie kann ich Formulare absenden und trozdem noch als frontenduser eingeloggt bleiben?
Danke für eure Hilfe!
Re: FrontendUser auslesen?
Hallo Enrico,
der Fehler liegt wahrscheinlich darin, dass du für deine Felder die gleichen Namen nutzt, wie auch das Login-Formular ("username" und "password").
Dadurch könnte das Contenido mit einem Login-Versuch verwechseln.
Gruß
René
der Fehler liegt wahrscheinlich darin, dass du für deine Felder die gleichen Namen nutzt, wie auch das Login-Formular ("username" und "password").
Dadurch könnte das Contenido mit einem Login-Versuch verwechseln.
Gruß
René
Re: FrontendUser auslesen?
Tatsache ... grml :/ Jetzt klappts, danke für die schnelle Hilfe!