Jessica: Session Var durch Formular setzen

Hi,

ich habe mich gerade in Sessions eingelesen. Klappt auch alles soweit.
Jetzt möchte ich allerding eine Session-Variable durch ein Formular setzen. Ich habe das so versucht:

<input type="pwd" name="<?$_SESSION["password"]?>">

Klappt aber nicht. Wo liegt da mein Denkfehler??

Danke
Jessi

  1. Hello,

    ich habe mich gerade in Sessions eingelesen. Klappt auch alles soweit.
    Jetzt möchte ich allerding eine Session-Variable durch ein Formular setzen. Ich habe das so versucht:

    <input type="pwd" name="<?$_SESSION["password"]?>">

    Klappt aber nicht. Wo liegt da mein Denkfehler??

    Das ist auch gut so, dass das nicht klappt.
    Die vordefinierten Arrays $_POST, $_GET, $_SESSION, $_COOKIE, $_FILES ...

    sind geschützt und können nicht direkt von außen beschrieben werden, sondern dies wird geordnet durch das Runtime von PHP durchgeführt.

    In $_Session ($_POST; $_GET, ...) kannst Du allerdings im Script direkt etwas eintargen.

    $_SESSION = $_POST['password'];

    würde gehen.

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau

  2. Hello,

    <input type="pwd" name="<?$_SESSION["password"]?>">
    Klappt aber nicht. Wo liegt da mein Denkfehler??

    schau in den Quelltext - welchen Namen bekommt das Passwortfeld? Richtig, den des Passworts aus der Session. Mal davon abgesehen, dass das ein Scheunentor von einer Sicherheitslücke ist, willst du das gar nicht. Oh, by the way, was für ein input-type ist "pwd"?
    Was du eigentlich willst ist:

    1. ein Feld "pwd" nennen
    2. im PHP-Skript prüfen, ob $_GET/$_POST['pwd'] gesetzt ist und dementsprechend den Wert in die Session übernehmen.
      Ein automatisierter Mechanismus dafür existiert nicht, was aus Sicherheitsgründen auch genau so sein sollte. Stell dir vor, ich kann ein Formularfeld $_SESSION['ist_admin'] nennen und werde dadurch Admin...

    MfG
    Rouven

    --
    -------------------
    Let Bygones Be Bygones  --  Robert Pitscottie: "Chronicles of Scotland"
    1. ;-D

      Vielen Dnak euch beiden!

      Grüße
      Jessi

  3. Hallo Jessica,

    <input type="pwd" name="<?$_SESSION["password"]?>">

    • Es gibt keine Felder vom type 'pwd'.
    • Wenn du den Inhalt einer Variablen printen willst, musst du auch print() benutzen.
    • Shorttags sind nicht auf allen Servern akzeptiert.
    • Du wirst vermutlich eine festen Namen fuer dein Feld vergeben und nur den value aus einer Variablen bilden wollen.

    Du kommst demnach auf
     <input type="password" name="pwd" value="<?php print $_SESSION["password"]?>">

    Gruß,

    Dieter

    1. Hi!

      Du kommst demnach auf
      <input type="password" name="pwd" value="<?php print $_SESSION["password"]?>">

      Ja, aber das Vorbelegen von Passwort-Feldern ist reichlich sinnfrei.
      Warum sollte man sowas tun?
      Es werden eh nur Sternchen oder Punkte angezeigt...
      In jedem Fall würde ich keine Passwörter zum Client zurückschicken. Wozu?

      Aber ich bin nicht nicht einmal sicher, ob man hier versuchen wollte, ein Passwortfeld vorzubelegen oder ob das den mißglückten Versuch darstellen sollte, das eingegebene PW in einer Sessionvariable zu speichern.

      Schöner Gruß,
      rob