Ergebnis 1 bis 7 von 7

Thema: Problem mit PHP und Sessions: Formulareinträge werden beim Aktualisieren gelöscht

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    "Vibration of Nature" - It's a long story
    stars_mod
    @dead_ork:
    Danke für die Antwort,

    ich habe mal zur Demonstration zwei Beispielseiten hochgeladen:

    Seite #1
    HTML-Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
      "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Formulartest ohne Session</title>
    </head>
    <body>
    <h1>Formulartest ohne Session</h1>
    <form name="login"  action="formtest.php" method="post">
      <input name="test" value="" />
    </form>
    </body>
    </html>
    Also ein ganz einfaches Formular.
    In Firefox 2.0 bleibt hier der Text erhalten, wenn man ihn eingibt und aktualisiert. (zumindest bei mir)

    Seite #2
    HTML-Code:
    <?php
      session_start();
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
      "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Formulartest mit Session</title>
    </head>
    <body>
    <h1>Formulartest mit Session</h1>
    <form name="login"  action="fromtest.php" method="post">
      <input name="test" value="" />
    </form>
    </body>
    </html>
    Der einzige technische Unterschied ist der kurze PHP-Codeabschnitt am Anfang, wo die session_start() aufgerufen wird.
    Bei Firefox 2.0 bleibt bei mir hier der Inputtext NICHT erhalten, wenn ich aktualisiere.

    Nur damit ihr mir das ganze auch glaubt (ich hoffe jetz nur, dass das keine Browsereigenart ist)

    Nun, du hast mir dennoch mit deinem Beitrag geholfen.
    Denn jetzt weiß ich, wie ich auf die Verwendung von Sessions verzichten kann, um Benutzerdaten zu merken.
    Ja, ich kam vorher nicht die Idee, Benutzer ID und Passworthash einfach mit Cookies abzuspeichern.

    Im Prinzip kann ich das ganze jetzt so aufbauen, dass ich Sessions nichtmehr verwende. Dennoch wäre es ganz interessant zu wissen, ob es nicht auch mit Sessions funktioniert.

    Ansonsten vielen Dank für den Beitrag!

    C ya

    Lachsen

  2. #2
    Zitat Zitat
    Nur damit ihr mir das ganze auch glaubt (ich hoffe jetz nur, dass das keine Browsereigenart ist)
    Würd ich glatt mal behaupten, denn bei Opera wirds in beiden fällen gelöscht.

  3. #3
    *sigh* just for you habe ich jetzt den Netzwerktraffic bei beiden Aufrufen und Reloads mitgeschnitten und mal analysiert. Hättest du dir mal die Header, die bei beiden Dateien mitgesendet werden, genauer angeguckt, wären dir sicherlich die folgenden aufgefallen, der nur bei formtest2.php gesendet wird:
    Zitat Zitat
    Expires: Thu, 19 Nov 1981 08:52:00 GMT
    Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    Pragma: no-cache
    All das sind mehr oder minder Hacks, die verhindern sollen, dass der Browser, der Proxy oder irgendeine andere Zwischenstelle die Seite zwischenspeichern. Um die Seite aber mit dem Inhalt des Feldes zu erhalten muss Firefox sie aber scheinbar cachen, und das wird mit den Headern verhindert.

    Ich vermute einfach mal ganz stumpf, dass es sich hier nur um eine der verkorksten Sicherheitsmaßnahmen von PHP handelt, da eine Seite, die durch Übermittlung einer SID meistens nicht in andere Hände geraten soll. Wenn du die Header manuell mit header() überschreibst müsste es aber möglich sein, dieses Verhalten zu ändern. Falls nicht ist das wirklich ein Armutszeugnis für PHP und du solltest tatsächlich auf Cookies bzw. eine manuelle Implementierung von Sessions umsteigen.

    Solltest du noch Interesse am Mitschnitt haben kann ich ihn dir natürlich auch gerne zukommen lassen, bin aber gerade zu faul den abzuspeichern und hochzuladen

    PS: Mir braucht jetzt keiner Live Headers o.Ä. empfehlen, ich kenne diese Extensions und benutze sie auch. Aber ich wollte hier wirklich den Traffic selbst haben und nicht irgendwelche abgewandelten Formen davon

    Geändert von dead_orc (09.10.2007 um 14:58 Uhr)

  4. #4

    "Vibration of Nature" - It's a long story
    stars_mod
    @Freierfall
    Das wird wohl der Fall sein, weil Opera schlichtweg und einfach Formulardaten nicht abspeichert. Schonmal die Unterschiede beim Seiten-vor- und zurückblättern getestet?

    @dead_orc
    Okay, die Header-Analysieren hab ich weniger Erfahrung.
    Hab im Moment nichtmal irgendein Programm, mit dem ich das machen könnte.
    Also ja, header-Modfikation wäre wohl irgend eine möglichkeit, aber damit kenne ich mich nicht aus und was ich dazu schon gelesen habe, wegen manuellem POST-Daten anhängen hörte sich schon kompliziert genug an.

    ... Es sei denn PHP hat funktionen mit denen man diese Einstellungen rückgängig machen kann, nachdem man die session_start() funktion aufgerufen hat...

    Ich habe das ganze jetzt also mit Cookies umgesetzt, klappt einwandfrei und die Formulardaten bleiben erhalten.

    Danke für die Hilfe. ^^

    C ya

    Lachsen

  5. #5
    Zitat Zitat
    @Freierfall
    Das wird wohl der Fall sein, weil Opera schlichtweg und einfach Formulardaten nicht abspeichert. Schonmal die Unterschiede beim Seiten-vor- und zurückblättern getestet?
    Wenn ich hier im Forum was eingebe, zurückgehe, wieder vor, sind die Eingegebenen Formulardaten immer noch da.
    Nach dem Aktualisieren nicht mehr

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •