Sabs: User mit Namen ansprechen

Hallo,

ich möchte den User der auf meine Seite kommt mit seinem Namen ansprechen. Dazu habe ich als Startseite anmeldung.htm mit einem einzeiligen Namensfeld in das der User einen beliebigen Namen mit min. 2 Buchstaben einzugeben und abzuschicken. Den Namen möchte ich dann auf der nächsten Seite verwenden indem ich dann z.B. schreibe "Hallo [user]...". Das Problem ist das ich die Daten in einem Frame benötige. Heißt: Von "anmeldung.htm" müssen die Daten an "index.html" gesendet werden, dort aber im Frame "inline_inhalt.php" genutzt werden.
Wenn ich die Daten nur an "inline_inhalt.php" sende zeigt er nur das Frame an und somit nur die halbe Seite noch dazu völlig verschoben.
Aber wenn ich die Daten an "index.html" sende werden sie garnicht angezeigt. Irgendwie müssen die Daten über "index.html" an "inline_inhalt.php" um/weitergeleitet werden und zwar ohne das User noch einmal etwas ausfüllen muss oder irgend nen Button drückt.
Hoffe jemand kann mir mit einer sicheren Lösung weiterhelfen.

MfG
Sabs

  1. Liebe Sabs,

    Dazu habe ich als Startseite anmeldung.htm mit einem einzeiligen Namensfeld in das der User einen beliebigen Namen mit min. 2 Buchstaben einzugeben und abzuschicken.

    wie wird denn der Name vom Server empfangen? Und noch viel wichtiger: Was tut der Server damit?

    Ich kann mir zwei Szenarien vorstellen:

    1.) Sessions
    Der Username wird in einer Session-Variablen abgelegt und ist daher Scriptseitig "überall" verfügbar. Wenn Du Dich mit Sessions noch nicht auskennst, dann sei Dir das PHP-Kapitel zu diesem Mechanismus ans Herz gelegt: PHP-Doku: Sessions

    2.) HTTP_auth
    Mit einer .htaccess-Datei verlangst Du einen Benutzernamen und ein Passwort. Den Usernamen erhälst Du dann mit $_SERVER['PHP_AUTH_USER']. Ob allerdings dieser Mechanismus für Deine Zwecke sinnvoll ist, wage ich zu bezweifeln, denn es können dann nur angemeldete User überhaupt die entsprechenden Seiten sehen...

    Den Namen möchte ich dann auf der nächsten Seite verwenden indem ich dann z.B. schreibe "Hallo [user]...".

    Das wird dann wahrscheinlich etwas in der Art sprintf('Hallo %s!', $_SESSION['username']);, wobei das 'username' ein von Dir frei wählbarer Variablenname für diesen Index ist.

    Das Problem ist das ich die Daten in einem Frame benötige. Heißt: Von "anmeldung.htm" müssen die Daten an "index.html" gesendet werden, dort aber im Frame "inline_inhalt.php" genutzt werden.

    Wie gesagt, wenn Du eine Session gestartet hast, dann kann Dein Script den User identifizieren und "überall" auf den Usernamen zugreifen. Wenn also in Deiner inline_inhalt.php der Session-Mechanismus gestartet wurde, dann "weiß" PHP, wer da gerade die Seite anfordert (siehe $_SESSION['username']) und kann entsprechend reagieren.

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

  2. hi,

    Das Problem ist das ich die Daten in einem Frame benötige.

    Warum benutzt du überhaupt noch Frames - wenn du schon PHP zur Verfügung hast?

    Heißt: Von "anmeldung.htm" müssen die Daten an "index.html" gesendet werden, dort aber im Frame "inline_inhalt.php" genutzt werden.

    Warum schickst du sie dann nicht gleich an den Frame, der (aktuell) die "inline_inhalt.php" enthält?
    (Du solltest mal zwischen Framenamen und darin angezeigter Seite differenzieren.)

    Wenn ich die Daten nur an "inline_inhalt.php" sende zeigt er nur das Frame an und somit nur die halbe Seite noch dazu völlig verschoben.

    Dann hast du wohl vergessen, mit dem Formular auf den richtigen Frame zu "zielen".

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
  3. Hallo Sabs,

    ich möchte den User der auf meine Seite kommt mit seinem Namen ansprechen. Dazu habe ich als Startseite anmeldung.htm mit einem einzeiligen Namensfeld in das der User einen beliebigen Namen mit min. 2 Buchstaben einzugeben und abzuschicken. Den Namen möchte ich dann auf der nächsten Seite verwenden indem ich dann z.B. schreibe "Hallo [user]...".

    Wenn du nicht den Weg über Sessions und Benutzer-Authentifizierung gehen möchtest, kannst du das ganz einfach lösen, indem du dem Benutzer (besser: seinem Browser) ein Cookie schickst, dass den Namen enthält. Da der Browser dann jedesmal, wenn er eine Seite vom Server anfordert (welche ist egal), das Cookie mitschickt, kannst du seinen Inhalt auswerten und an den entsprechenden Stellen einsetzen. Du solltest aber bedenken, dass nicht alle Menschen Kekse mögen. Daher macht es sich gut, den Wert für den Namen mit einer "unpersönlichen" Anrede vorzubelegen, für den Fall, dass kein Cookie mit dem Namen vom Browser gesendet wurde.

    Das Problem ist das ich die Daten in einem Frame benötige.

    Das ist PHP egal.

    Heißt: Von "anmeldung.htm" müssen die Daten an "index.html" gesendet werden, dort aber im Frame "inline_inhalt.php" genutzt werden.

    Du kannst den Platzhalter für den Namen nur mit PHP (oder einer anderen serverseitigen Script-Sprache) ersetzen. Mit reinem HTML geht sowas nicht. Eine Lösung mit JavaScript setzt die Aktivierung desselben voraus -- wovon man als Webmaster nicht ausgehen sollte.

    Und den Inhalt des Anmeldeformulars kannst du sowieso nur sinnvoll verarbeiten, wenn du ihn an ein PHP-Script schickst. Eine HTML-Datei kann da mit nichts anfangen.

    MffG
    EisFuX