PHP variable user (Technics)

by Fritzw @, Wednesday, November 29, 2023, 11:09 (91 days ago)

Hallo,

ich suche die PHP-Variable, die den momentan eingeloggten User enthält.
Ich brauche die Variable, um einen Link zu einer externen Anwendung (Chat) zu erzeugen.
Danke schon einmal für Hinweise.

Avatar

PHP variable user

by Auge ⌂, Wednesday, November 29, 2023, 14:03 (91 days ago) @ Fritzw

Hallo

ich suche die PHP-Variable, die den momentan eingeloggten User enthält.

In der Anwendung selbst wird primär mit der User-ID gearbeitet, der benutzername ist aber ebenfalls bekannt. In den Session-Daten sind beide Datenpunkte vorhanden, falls und wenn ein eingeloggter Benutzer eine Seite des Forums aufruft. Es handelt sich um die folgenden zwei Array-Elemente der Session.

 
$_SESSION[$settings['session_prefix'] . 'user_id']
$_SESSION[$settings['session_prefix'] . 'user_name']
 

Da die Software prinzipbedingt auch mit nicht eingeloggten Besuchern umgehen können muss, musst du den Code so gestalten, dass, was immer du genau tun willst, in einem Block geschieht, der die Bedingung erfüllt, dass beide Session-Werte existieren.

 
if (isset($_SESSION[$settings['session_prefix'] . 'user_id'])
   && isset($_SESSION[$settings['session_prefix'] . 'user_name'])) {
    // Hier könnte Ihr Code stehen!
}
 

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!

PHP variable user

by Fritzw, Saturday, December 02, 2023, 21:49 (88 days ago) @ Auge

Danke.
Ich konnte in der main.tpl den User mit {$user} ausgeben.
Das ist zwar keine PHP-Variable, sondern …? aber es tut seinen Zweck.

Avatar

PHP variable user

by Auge ⌂, Monday, December 04, 2023, 07:42 (86 days ago) @ Fritzw

Hallo

Ich konnte in der main.tpl den User mit {$user} ausgeben.
Das ist zwar keine PHP-Variable, sondern …? aber es tut seinen Zweck.

Naja, klar. Wenn du in einem Template etwas ausgibst, wird das mit der template-Engiune getan. Das ist im Falle von MLF2 Smarty u nd dort liegt der Wert als $user vor, wenn er denn vorliegt. Wie du innerhalb der MLF2-PHP-Codebasis an den Wert kommst, schrieb ich bereits.

Wenn das nicht das ist, was du brauchst, dann erkläre das bitte ausführlicher. Von wo aus (welches System) willst du auf den Wert zugreifen? Ist das eine externe Software? Und so weiter und so fort.

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!

PHP variable user

by Fritz ⌂, Monday, December 04, 2023, 11:45 (86 days ago) @ Auge

Hi Auge,

danke, ich hab' alles, was ich brauche.
Falls es jmd. interessieren sollte:
Ich habe in meinem Forum einen Link zu meinem Chat eingefügt. Siehe Screenshot
[image]
Mit dem Link wird auch der Username mitgegeben, so dass User sich im Chat nicht erneut Einloggen müssen.
Dazu habe ich in der /themes/default/main.tpl folgenden Code eingefügt:

<form method="post" action="//webdesign.weisshart.de/chat/" name="user_trans">
<input type="hidden" name="username" value={$user} />
<a href="javascript:document.user_trans.submit()">Chat</a> |
</form>
 
Avatar

PHP variable user

by Auge ⌂, Monday, December 04, 2023, 13:41 (86 days ago) @ Fritz

Hallo

danke, ich hab' alles, was ich brauche.
Falls es jmd. interessieren sollte:
Ich habe in meinem Forum einen Link zu meinem Chat eingefügt.

Ah ja, an dieser Stelle ist die Smarty-Variable genau das, was du brauchtest.

Mit dem Link wird auch der Username mitgegeben, so dass User sich im Chat nicht erneut Einloggen müssen.
Dazu habe ich in der /themes/default/main.tpl folgenden Code eingefügt:

<form method="post" action="//webdesign.weisshart.de/chat/" name="user_trans">
<input type="hidden" name="username" value={$user} />
<a href="javascript:document.user_trans.submit()">Chat</a> |
</form>

Was mich ein wenig wundert, ist der Umstand, dass du hinter dem Link eine Pipe (|) notierst. Die Links, die in dem Menü notiert sind, bekommen ihre Pipe-Trenner über ihre Container, die sie umfassen (<li></li>), automatisch verpasst. Steht das Formular nicht in einem (<li></li>)?

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!

PHP variable user

by Fritz ⌂, Monday, December 04, 2023, 14:05 (86 days ago) @ Auge

Was mich ein wenig wundert, ist der Umstand, dass du hinter dem Link eine Pipe (|) notierst. Die Links, die in dem Menü notiert sind, bekommen ihre Pipe-Trenner über ihre Container, die sie umfassen (<li></li>), automatisch verpasst. Steht das Formular nicht in einem (<li></li>)?

Hallo Auge,

WOW, du schaust aber genau hin.
Ich habe tatsächlich <li></li> rausgenommen, weil das Pipe-Zeichen andernfalls um eine Zeile nach unten gerutscht wäre, und ich zu bequem war, die Ursache im CSS zu suchen. Klar, ein <form></form> innerhalb einer ul ist nicht valide.
Ich hab' nochmal nachgebessert:

<li>
<form style="display:inline;"  method="post" action="//webdesign.weisshart.de/chat/" name="user_trans">
<input type="hidden" name="username" value={$user}>
<a style="margin-right:0;" href="javascript:document.user_trans.submit()">Chat</a>
</form>
</li>

Jetzt passt es.
Danke für deine Hilfe.

Avatar

PHP variable user

by Auge ⌂, Monday, December 04, 2023, 14:26 (86 days ago) @ Fritz

Hallo

Was mich ein wenig wundert, ist der Umstand, dass du hinter dem Link eine Pipe (|) notierst. ...


WOW, du schaust aber genau hin.

Wenn man selbst daran herumgeschraubt hat, fällt einem das auf. 🙂

Ich habe tatsächlich <li></li> rausgenommen, weil das Pipe-Zeichen andernfalls um eine Zeile nach unten gerutscht wäre, und ich zu bequem war, die Ursache im CSS zu suchen. Klar, ein <form></form> innerhalb einer ul ist nicht valide.

Das ist das Spiel mit den CSS-Display-Eigenschaften. Ein Element des Typs form ist per Vorgabe des Browserstylesheets das, was man früher ein Blockelement genannt hat (heute flow content). Das erzeugt innerhalb des li für form eine Box, was wiederum das li vergrößert, indem es eine neue Zeile erzeugt. An der li hintendran (mit li::after) befindet sich auch die Pipe, die aber im durch das form vergrößerten li in dessen letzter Zeile angezeigt wird.

Wenn alle Blockelemente im li auf display: inline; festgelegt werden, was hier fraglos funktioniert, wird keine neue Zeile erzeugt und die Pipe bleibt da, wo sie sein soll.

Ich hab' nochmal nachgebessert:

<li>
<form style="display:inline;"  method="post" action="//webdesign.weisshart.de/chat/" name="user_trans">
<input type="hidden" name="username" value={$user}>
<a style="margin-right:0;" href="javascript:document.user_trans.submit()">Chat</a>
</form>
</li>

Genau das (bis auf die Notation im Style-Attribut). 😅

Jetzt passt es.
Danke für deine Hilfe.

Büdde, büdde.

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!

RSS Feed of thread