steffen: .htaccess "Hallo [Username] !

Hallo Experten!

Obwohl ich keinerlei Ahnung habe von UNIX-Syntax, Perl oder PHP,
habe ich eine ".htaccess"-Datei mit einer ".htpasswd"-Datei auf meinem Server installiert, und die Passwortabfrage funktioniert auch wunderbar.

Jetzt möchte ich nur eine Kleinigkeit ändern,
und dazu benötige ich Fachwissen von Euch:

Wenn ich einen geschützten Bereich betreten möchte,
werde ich doch über das Dialogfenster von ".htaccess"
nach meinen Usernamen und dem Passwort gefragt.
Meine Eingaben werden mit den Angaben in ".htpasswd"
verglichen, und wenn ich eben berechtigt bin,
dann werde ich zu meiner gewünschten Seite weitergelassen.

Wie kann ich auf der sich nun öffndenden HTML-Seite
ein "Herzlich Willkommen [Username]!" einbauen?

Eigentlich kann es doch nicht schwierig sein, da gerade eben noch
mein Username ja geprüft und festgestellt wurde.

Ich kenne mich nur aus in HTML und JavaScript,
aber ich kann mir vorstellen, das sich eine Art Variable
doch ganz einfach in den HTML.Code einbauen lassen müsste.

Oder? Wie geht das?

danke - steffen.
(p.s. bin ich mit dieser Frage in der Rubrik "CGI" überhaupt richtig?)

  1. hi!

    Wie kann ich auf der sich nun öffndenden HTML-Seite
    ein "Herzlich Willkommen [Username]!" einbauen?

    Der verifizierte Benutzername steht in der Umgebungsvariablen
    REMOTE_USER. Die kannst du abfragen und ausgeben lassen. Zum Beispiel
    direkt per SSI:
      Hallo <!--#echo var="REMOTE_USER" -->

    Sieht natürlich ein bisschen blöd aus, wenn der Benutzername nicht
    der Vorname ist. In dem Fall würde ich das zb. per CGI-Skript, PHP
    oder ähnlichem machen. Dort könntest du einfach mit einer Mapping-
    Funktion den Benutzernamen auf den gewünschten Vornamen abbilden.

    Das müsste aber auch mit JavaScript machbar sein. Beispielsweise
    könntest du ja sowas in der Art in dein HTML-File schreiben:
      <script language="JavaScript">
        var remoteuser = '<!--#echo var="REMOTE_USER" -->';
        // to be continued...
      </script>

    Im endgültigen JavaScript steht dann an der Stelle der Benutzername,
    mit dem sich der aktuelle Besucher eingeloggt hat. Den kannst du dann
    mit gewohnten JavaScript-Funktionen weiterverarbeiten.

    bye, Frank!

  2. Moin,

    habe ich eine ".htaccess"-Datei mit einer ".htpasswd"-Datei [...]
    Wie kann ich auf der sich nun öffndenden HTML-Seite
    ein "Herzlich Willkommen [Username]!" einbauen?

    Der Name des authentifizierten Benutzers (der Anmeldename) erscheint in den Umgebungsvariablen.
    Den kannst du mit SSI einbinden. (<!--#echo var="REMOTE_USER" -->) (Ungetestet aus dem hohlen Bauch)

    wenn du den Anmeldenamen allerdings in einen vollstaendigen Namen uebersetzen moechtest, wird die Seite dynamisch erzeugt werden muessen (mit einem CGI-Script ueberlicherweise).

    (p.s. bin ich mit dieser Frage in der Rubrik "CGI" überhaupt richtig?)

    die Wahl war schon fast gut ;)
    Programmiertechnik waere evtl. noch passender gewesen.

    HTH &

    Viele Gruesse,

    n.d.p.

    1. Hi,

      habe ich eine ".htaccess"-Datei mit einer ".htpasswd"-Datei [...]
      Wie kann ich auf der sich nun öffndenden HTML-Seite
      ein "Herzlich Willkommen [Username]!" einbauen?

      Den kannst du mit SSI einbinden. (<!--#echo var="REMOTE_USER" -->) (Ungetestet aus dem hohlen Bauch)

      In PHP kannst du auch über $PHP_AUTH_USER direkt darauf zugreifen und noch wichtiger auch verändern.

      wenn du den Anmeldenamen allerdings in einen vollstaendigen Namen uebersetzen moechtest, wird die Seite dynamisch erzeugt werden muessen (mit einem CGI-Script ueberlicherweise).

      Ich habs gerade nur in PHP da

      if($PHP_AUTH_USER == "Jens")
        {
          $PHP_AUTH_USER = "Jens Müller";
        }

      gruesse
        jens mueller

      1. Ich habs gerade nur in PHP da

        if($PHP_AUTH_USER == "Jens")
          {
            $PHP_AUTH_USER = "Jens Müller";
          }

        Danke! Aber wie gesagt - ich spreche noch kein PHP...

        Kann ich so einen PHP-Code einfach in ein HTML einfügen
        (vergleichbar einem "javascript:"-Aufruf)
        oder wie funktioniert das Verbinden verschiedener Programiersprachen hier?

        • st.
        1. Hallo steffen!

          Kann ich so einen PHP-Code einfach in ein HTML einfügen
          (vergleichbar einem "javascript:"-Aufruf)
          oder wie funktioniert das Verbinden verschiedener Programiersprachen hier?

          Anders:
          PHP[1] wird auf dem Server ausgeführt. Dazu wird der ganz Quelltext durchgelesen und die <?php Codeteile ?> werden ausgeführt. Dabei kommt ein neuer Quelltext raus, und der wird zum Browser geschickt.

          Beispiel:

          <html>
            <?php echo "Der Angemeldete User ist <b>$PHP_AUTH_USER</b>" ?>
          </html>

          kommt bei deinem Browser als

          <html>
             Der Angemeldete User ist <b>Fetz</b>
           </html>

          an.

          Gruss,
           Carsten

          [1] nur mal als Beispiel, das Prinzip ist auch bei Perl, JSP, ASP/VB ... das gleiche. Der Server muss die jeweilige Sprache natürlich unterstützen, sonst geht gar nix.

          1. <html>
              <?php echo "Der Angemeldete User ist <b>$PHP_AUTH_USER</b>" ?>
            </html>

            Hallo Carsten,

            danke für die Erklärung! Hört sich gut an.
            Aber kann es sein, dass du dich vertippt hast?

            Ich habe deine Zeile direkt per drag-and-drop kopiert
            <?php echo "Der Angemeldete User ist <b>$PHP_AUTH_USER</b>" ?>
            aber Netscape zeigt nur eine leere Seite
            und der Explorer schreibt folgenden Fetzen '$PHP_AUTH_USER" ?>'

            • sieht doch verdammt nach Tippfehler aus.

            Ich weiss nur nicht wie es richtig heissen müsste...

            Gruss

            • steffen.
            1. Ich habe deine Zeile direkt per drag-and-drop kopiert
              <?php echo "Der Angemeldete User ist <b>$PHP_AUTH_USER</b>" ?>
              aber Netscape zeigt nur eine leere Seite
              und der Explorer schreibt folgenden Fetzen '$PHP_AUTH_USER" ?>'

              • sieht doch verdammt nach Tippfehler aus.

              Der Server, auf dem Du es ausprobiert hast, unterstützt PHP?

              1. Der Server, auf dem Du es ausprobiert hast, unterstützt PHP?

                PHP4 - ja klar. (st.)

                1. Hi Steffen!

                  Der Server, auf dem Du es ausprobiert hast, unterstützt PHP?

                  PHP4 - ja klar. (st.)

                  und du hast die Datei auch test.php genannt ?
                                                  ^^^

                  Der Code läuft bei mir geCopy&pasted. (In den 3 Zeilen tue selbst ich mich mit Tippfehlern schwer ;-)

                  Gruss,
                   Carsten

                  1. und du hast die Datei auch test.php genannt ?
                                                    ^^^

                    okay, okay...

                    nachdem ich die Beispiele von n.d.parker und Jens Müller
                    jeweils mit ".shtml" versehen hatte,
                    habe ich es in deinem Fall auch einfach so gemacht,

                    naja
                      :-]

                    ...das kommt eben davon, wenn das nötige Hintergrundwissen fehlt...

                    sorry und danke!

                    -steffen.