Benutzername auf Website anzeigen lassen?

2 Antworten

a) Beim Login kannst du dir, sofern die Anmeldung erfolgreich war, den Nutzernamen in der Session speichern.

<?php
  session_start();

  /* login ... */

  if (loginWasSuccessful) {
    $_SESSION['username'] = $username;
    /* ... */

Innerhalb des Portals kannst du nun über die Session wieder an den Nutzernamen kommen, um ihn auszugeben.

<?php session_start(); ?>
<!doctype html>
<title>Dashboard</title>
<body>
  <h1>Welcome, <?= htmlspecialchars($_SESSION['username']) ?>!</h1>
  <!-- ... -->
</body>

Denke dabei daran, Sonderzeichen im Nutzernamen (spätestens vor der Ausgabe) zu maskieren. Egal ob du den Wert in die Session speicherst, der aus der Datenbank kommt oder den aus dem Formular, den der Nutzer geschickt hat. In beiden Fällen handelt es sich um Eingaben von außen, über die eine Injection laufen könnte.

b) Alternativ könntest du dir beim Login auch einen Identifier in der Session speichern (z.B. den Index des Tabelleneintrags, sofern die Datenbanktabelle indexiert ist), mit dem sich der Nutzername in accounts holen lässt.

Je Request brauchst du anschließend eine entsprechende Datenbankabfrage.

Hallo Mikab1276,

weitere Datenbanktabelle "Mitarbeiter" anlegen.
Primärer Schlüssel ist die Mitarbeiternummer
Zusätzlich gibt es noch Vorname, Nachname, Geburtsdatum, Geburtsort

In der Tabelle accounts eine weitere Spalte MA-Nummer. Diese und der primäre Schlüssel der Tabelle Mitarbeiter sind dann entsprechend zu pflegen.

Jetzt kannst du mit passender Datenbankabfrage anhand des Logins den passenden MA-Namen herausfinden und auf der Webseite anzeigen.

Been


regex9  29.12.2022, 04:44

Der Fragesteller schreibt, dass er den Benutzernamen ausgeben lassen möchte, den es in der Tabelle accounts schon gibt. Er braucht also keine weitere Tabelle, mit Daten, die für seinen Anwendungsfall erst einmal irrelevant sind.

0