RalphT: Frage zu einem Formular (einen festen Wert übergeben)

Hallo,

ich habe hier das folgende Formular:

<form method="post" action="$PORTAL_ACTION$">
Benutzername: <input name="auth_user" input value="mustermann" type="text"/><br>
Passwort: <input name="auth_pass" type="password"/>
<p>
<input name="accept" type="submit" value="Absenden"/>

Hier muss ein Nutzer seinen Namen und das dazugehörige Passwort eingeben. Das funktioniert auch.

Nun möchte ich folgendes ändern:

Der Nutzer soll seinen Namen nicht mehr eingeben müssen. Nur noch das Passwort. Die Zeile "Benutzername" im Formular soll dann verschwinden, sodass der Nutzer nur noch das Feld für das Passwort sieht.

Aber beim Drücken des Absendebuttons soll ein vordefinierte Name (mustermann) dem Webserver übermittelt werden.

Kann man das so umsetzen? Wenn ja wie?

  1. Hallo RalphT,

    hat dann jede Nutzerin denselben Nutzernamen?

    Bis demnächst
    Matthias

    --
    Du kannst das Projekt SELFHTML unterstützen,
    indem du bei Amazon-Einkäufen Amazon smile (Was ist das?) nutzt.
  2. Hallo RalphT,

    Der Nutzer soll seinen Namen nicht mehr eingeben müssen. Nur noch das Passwort.
    Die Zeile "Benutzername" im Formular soll dann verschwinden, sodass der Nutzer nur noch das Feld für das Passwort sieht.

    Aber beim Drücken des Absendebuttons soll ein vordefinierte Name (mustermann) dem Webserver übermittelt werden.

    Kann man das so umsetzen? Wenn ja wie?

    das wäre mit einem <input type="hidden"> leicht zu realisieren.

    Aber Vorsicht: Dann kann dir auch jeder Nutzer, der seinen Browser kennt und bedienen kann, einen gefälschten Benutzernamen unterschieben. Eine serverseitige Kontrolle ist also trotzdem noch unverzichtbar.

    Live long and pros healthy,
     Martin

    --
    Keyboard error or no keyboard present. Press F1 to continue.
    1. Hallo Martin,

      habe das mal eben schnell probiert. Ja super, so wollte ich das haben!

      Die Kombination Name/Passwort ist in diesem Fall immer gleich und das wird im Form eines Zettels an der Wand veröffentlicht. Und der Webserver läuft ja nur intern im LAN. Von daher kann ich das so lösen.

      Vielen Dank für die schnelle Lösung!

      1. Hallo RalphT,

        Name/Passwort (...) wird im Form eines Zettels an der Wand veröffentlicht.

        WTUF?

        Weshalb hast Du dann überhaupt eine Anmeldeseite?

        Rolf

        --
        sumpsi - posui - obstruxi
        1. Hallo Rolf B,

          Weshalb hast Du dann überhaupt eine Anmeldeseite?

          Die Seite ist prinzipiell für jeden Mitarbeiter der Abteilung aufrufbar, soll aber nur einem ausgewählten Nutzerkreis zugänglich gemacht werden. 😆

          Bis demnächst
          Matthias

          --
          Du kannst das Projekt SELFHTML unterstützen,
          indem du bei Amazon-Einkäufen Amazon smile (Was ist das?) nutzt.
          1. Hallo Rolf,

            das hat folgenden Hintergrund:

            Ich habe hier eine Firewall von pfSense (https://www.pfsense.org). In diesem Gerät habe ich für das WLAN die Funktion Captive-Portal aktiviert. Man kennt das aus den Hotels, wo man ggf. für das WLAN seinen Zimmernummer o.ä. eingeben muss.

            Hier kann man das mit einem Vouchercode (Einmalpasswort) realisieren (in diesem Fall nicht gewählt) oder mit der Kombination Name/Passwort. Und ein gewisser Personenkreis muss dann diese Kombination für einen Tag wissen, um in das WLAN zu kommen. Um es nicht zu kompliziert zu machen, wollte ich die ganze Truppe mit einem gemeinsamen Passwort versorgen. Jetzt muss jeder nur eine kleinen PIN eingeben, der vorher bekannt gegeben wird und gut ist. Am nächsten Tag wird dann einfach nur der PIN verändert.

  3. @@RalphT

    ich habe hier das folgende Formular:

    <form method="post" action="$PORTAL_ACTION$">
    Benutzername: <input name="auth_user" input value="mustermann" type="text"/><br>
    Passwort: <input name="auth_pass" type="password"/>
    <p>
    <input name="accept" type="submit" value="Absenden"/>
    

    Hier muss ein Nutzer seinen Namen und das dazugehörige Passwort eingeben. Das funktioniert auch.

    Für manche Nutzer. Für andere funktioniert das nicht, denn die Eingabefelder haben keine zugeordnete(!) Beschriftung. Jedes Eingabefeld muss ein label haben.

    Entweder über ID:

    <label for="auth_user">Benutzername:</label>
    <input id="auth_user" name="auth_user" input value="mustermann" type="text"/>
    

    oder implizit

    <label>
      Benutzername:
      <input name="auth_user" input value="mustermann" type="text"/>
    </label>
    

    (oder beides).

    😷 LLAP

    --
    „Sag mir, wie Du Deine Maske trägst, und ich sage Dir, ob Du ein Idiot bist.“ —@Ann_Waeltin
    1. Hallo Gunnar,

      ich war mal so frei, ein überzähliges End-Tag aus deinem Code-Beispiel zu entfernen.

      Live long and pros healthy,
       Martin

      --
      Keyboard error or no keyboard present. Press F1 to continue.
    2. Hallo Gunnar,

      danke für deine Information. Ich habe gerade überlegt, wie ich damals diese Seite zusammengestrickt hatte. Jetzt ist es mir wieder eingefallen:

      Auf der Konfigurationsseite der Firewall gibt es zum Erstellen einer selbstdefinierten Welcomseite eine kleinen Code-Schnipsel. Hier ist er:

      Das Beispiel:

      Lade HTML/PHP-Datei für die Portal-Seite hier hoch (freilassen, um die derzeitige zu behalten). Sicherstellen, dass ein Formular enthalten ist (POST zu "$PORTAL_ACTION$") mit einem Button (name="accept") und einem versteckten Feld namens "redirurl" und Wert="$PORTAL_REDIRURL$". "auth_user" und "auth_pass" und/oder "auth_voucher" Eingabefelder sind aufzunehmen wenn Authentifizierung aktiviert ist, ansonsten schlägt diese immer fehl. Beispielcode für das Formular:

      <form method="post" action="$PORTAL_ACTION$">
         <input name="auth_user" type="text">
         <input name="auth_pass" type="password">
         <input name="auth_voucher" type="text">
         <input name="redirurl" type="hidden" value="$PORTAL_REDIRURL$">
         <input name="zone" type="hidden" value="$PORTAL_ZONE$">
         <input name="accept" type="submit" value="Continue">
      </form>
      

      Daher habe ich das einfach so umgesetzt, wie eingangs beschrieben. Ich werde das dann aber noch abändern.