Hallo,
wenn ich ein formular per PHP ausgebe und schreibe, habe ich folgenden effekt. der inhalt
der mit dem formular gesendet wurde, erscheint vollständig in der url leiste. das stört mich
nicht wirklich, aber folgendes stört mich besonders: Wenn dann ein user auf der seite bleibt
und aktualisieren klickt, ist der inhalt des formulars 2mal gesendet. und das passiert so leicht
wie macht nickles.de das, dass das hier nicht passiert? gibt es da einen befehl,der nach
ausfüllen des formulars auf die seite zurücklinkt, also die seite wechselt oder etwas ähnliches??
Gruss Manfred
Homepage selbermachen 7.852 Themen, 35.619 Beiträge
wenn du als form-methode nicht GET wie in deinem fall, sondern POST wählst, dann werden die formulardaten auch nicht an die url angehängt, sondern als gesonderter datenstream gesandt. allerdings wird auch in diesem fal beim user nachgefragt, ob der die daten erneut senden will beim aktualisieren.
und gerade das will ich verhindern, dass die daten nachdem sie einmal versendet wurden, dann weg sind.
hm...ich verstehe nicht ganz was du mit WEG meinst. die daten sind in dem sinne nicht weg, sie werden gecacht. der unterschied zwischen GET und POST liegt zum einen in der art der übermittlung und zum anderen in der form der weiteren handhabbarkeit.
ich verstehe also dein problem nicht ganz. was meinst du mit befehl der zur seite zurücklinkt? wenn du dein forumlar abschickst kannst du ja in dem scrpit, daß die daten annimmt jede seite laden lassen nach erfolgter übermittlung, die du willst. du kannst die urprungsseite leer includieren lassen, du kannst eine bestätigungsseite laden lassen oder du kannst auf jede andere seite deiner wahl leiten lassen.
ich will nach dem ansenden des formulars auf der selben seite bleiben. das problem ist eben, drückt der user, aus welechen gründen auch immer auf aktualisieren, trägt er sich z.b. nochmal ins gästebuch ein und ich habe keine lust in jedes formular eine IP Sperre zu bauen
brauchst du auch garnicht. ist diese seite das selbe php-script, daß auch die daten aufarbeitet, also geht die form an PHP_SELF? oder ist es eine htmlseite, die das script aufruft?
im ersten fall kannst du einfach in die seite nach dem erfolgten absenden eine variable hinzufügen, z.b. $sent=1 und deren existenz überprüfen um nochmaliges posten zu verhindern.
die seite ist eine php seite, aber das mit der zusätzlichen variablen versteh ich nicht wo soll die denn hin?