geist_der_foren: Zurückbutton des Browser - Deaktiviren

Hi @all,

ich möchte nach dem ein Formular abgeschickt ist, den zurückbutton des Browsers deaktivieren, so das der User nicht noch mal das Formular absendet. Wie kann ich das bewerkstelligen ?

  1. Nabend,

    ich möchte nach dem ein Formular abgeschickt ist, den zurückbutton des Browsers deaktivieren, so das der User nicht noch mal das Formular absendet. Wie kann ich das bewerkstelligen ?

    Zum Glück kannst du die mir bekannten und vertrauten Funktionen meines Browsers nicht durch irgend ein überflüssiges JS deaktivieren.
    Verbessere stattdessen dein Script, welches das Formular auswertet, indem es doppelte Absendungen erkennt.

    Bis denne,

    1. Wenn es eine Andere möglichkeit gibt, dann soll es mir recht sein ... Aber was habe ich da noch für möglickeiten ??ß

      1. Lege z.B. einen Cookie wenn das Formular gesendet wurde, mach einen Datenbankeintrag ode geh Ÿber die SessionID.
        Es gibt da zahllose mšglichkeiten.

        Gruss

        MARC

        1. Gut das Du das Stichwort SessionID erwähnst ...
          Also ich arbeite mit Sessions.

          Ich versuche mal zu schildern:

          1. Ich hab einen Html formular, in dem der User etwas auswählen kann.

          2. Nach dem er das abgeschickt hat, wird einen PHP seite aufgerufen,
             in dem das aufgeigt wird, was er ausgewählt hat falls er etwas
             vergessen hast, wird es dann rot angezeigt.

          3. Wenn im PHP Fomular alles klar war, wird er auf einen Andere Seite
             Verwiesen. Doch wenn er mit dem Browser wieder zurück geht. Dann
             kann er wieder das gleiche abschicken ! Jetzt ist die Frage wie
             ich das Verhindern kann ?

            1. Wenn im PHP Fomular alles klar war, wird er auf einen Andere Seite
                 Verwiesen. Doch wenn er mit dem Browser wieder zurück geht. Dann
                 kann er wieder das gleiche abschicken ! Jetzt ist die Frage wie
                 ich das Verhindern kann ?

            indem du bevor du die Daten abspeicherst überprüfst ob die Daten schon existieren und ebntsprechend reagierst.

            Struppi.

            1. Ich Speichere nichts ab...
              Ich rufe mit dem PHP-Skript einen Shell-Skript auf, der z.B. Ordner anlegt (ist nur ein beispiel). Wenn der User jetzt zurück geht, dann kann er 1000 Ordner erstellenn :(

              1. hi,

                Ich rufe mit dem PHP-Skript einen Shell-Skript auf, der z.B. Ordner anlegt (ist nur ein beispiel). Wenn der User jetzt zurück geht, dann kann er 1000 Ordner erstellenn :(

                dann lege dir die info, dass er bereits einen ordner erstellt hat, irgendwo ab, wo du sie a) wiederfinden und b) einem bestimmten user zuordnen kannst.

                gruss,
                wahsaga

                1. Ok und wie kann ich das machen ??? Ich bin noch nicht so fit in PHP.
                  Ich bin froh, dass ich an Hand von Sessions, variablen über mehere Formulare Übergeben kann. :-S

                  1. guck dir mal meinen Eintrag oben an, geht es so???

                    MARC

                    1. Wie meinst du das, mach es mit Dateien ??? Cookies ???

                      1. Hast du eine Datenbank? war meine Frage.

                        Bedeutet deine Frage nach Dateien, dass du keine Datenbank hast?

                        Dateien bedeuted, dass du in einem Verzeichnis auf deinem Server Dateien mit PHP anlegst, in die du ebenfalls mit PHP rein schreibst.

                        Beachte bitte, dass PHP Schreib- und Leserechte auf dieses Verzeichnis braucht.

                        Gruss

                        MARC

                        1. Also nein ich hab keine Datenbank.

                          Wenn der User diese Eingaben gemacht hat, kann er auf dem Button "SENDEN" Klicken, nach dem Diese geschehen ist, wird mit shell_exec ein shell skript aufgerufen. Wenn der User wieder zurück geht (an Hand des Browsers) und wieder auf den Buttons "SENDEN" klickt, dann wird das Skript wieder aufgerufen, und das möchte ich nicht ...
                          Das ist nur einen Test machine, ich hab ein verzeichniss, auf dem Alle und jeder "schreiben lesen und ausführen darf"

                          1. Hallo,

                            Schade, dass du keine Datenbank hast, du solltest dir eine anschaffen, ist um einiges einfacher als mit Dateien, aber nichts desto trotz.

                            Hier eine Anleitung wie du es machen kannst:

                            1. du legt dein Formular in eine PHP Datei und lŠsst dir darin eine Zufallszahl erzeugen:

                            srand(microtime()*1000000);

                            $zufall = rand(10000000,99999999);

                            1. Und weiter ??? Wenn jetzt die zufallszahl drin ist ?
                              Kann ich das Prob mit Cookies Lösen ???

                              1. Und weiter ??? Wenn jetzt die zufallszahl drin ist ?
                                Kann ich das Prob mit Cookies Lösen ???

                                Könntest du einfach mal versuchen das was du bereits getan hast zeigen und was nicht geklappt hat und warum nicht.

                                Das ist doch bloss rum raterei. und wenn du's nicht kapierst, dann mach es besser nicht. Sorry, aber ein bisschen mehr sollte schon von dir kommen.

                                Struppi.

                                1. @marc
                                  Sorry das es so rübergekommen ist... Wollte ich nicht
                                  Ich danke dir wirklich das du mir geholfen hast.

                                  @Struppi
                                  Danke für deine Vielsagenden Kommentare !

                                  Ich möchte euch nicht mehr zur last fallen. Sorry wenn ich gestört habe.
                                  Danke für die Antworten.

                                  1. Du fŠllst hier keinem zur Last, wenn du noch Hilfe brauchst, dann melde dich ruhig, dafŸr ist doch schlie§lich dieses Forum da.

                                    Du kannst mir auch gerne ne Email schicken, hab dir ja eben eine geschickt, somit mŸsstest du meine Adresse haben.

                                    Gruss

                                    Marc

                              2. Hallo,
                                ÈÈ Und weiter ??? Wenn jetzt die zufallszahl drin ist ?
                                Dann gibst du eine Fehlermeldung aus und wertest das Formular nicht aus.
                                ÈÈ Kann ich das Prob mit Cookies Lšsen ???
                                Klar kannst du das Problem mit Cookies lšsen, allerdings wenn jemand die Cookies ausgeschaltet hat oder seine Sicherheitseinstellungen auch hoch gesetzt hat, bringt es dir gar nichts.

                                Vielleicht solltest du dir auch mal einen anderen Ton angewšhnen, es ist nŠmlich nicht so, dass ich den ganzen Tag hier im Forum sitze und  dir Antworten auf deine Fragen geben kann und dir dazu noch einen ganzen Batzen Code schicke, ich habe auch noch jede Menge Arbeit.

                                Auch wŠre ein Hallo, Danke oder Gruss schšn

                                Gruss

                                MARC

              2. Ich Speichere nichts ab...

                doch tust du

                Ich rufe mit dem PHP-Skript einen Shell-Skript auf, der z.B. Ordner anlegt (ist nur ein beispiel). Wenn der User jetzt zurück geht, dann kann er 1000 Ordner erstellenn :(

                Meine güte, dann etwas alllgemeiner, wenn der User etwas tun kann und er es dann tut musst du überprüfen ob er das schon getan hat und dann entsprechend reagieren.

                Struppi.

          1. ÈÈ Gut das Du das Stichwort SessionID erwŠhnst ...
            È
            ÈÈ 3. Wenn im PHP Fomular alles klar war, wird er auf einen Andere Seite
            ÈÈ ÊÊ Verwiesen. Doch wenn er mit dem Browser wieder zurŸck geht. Dann
            ÈÈ ÊÊ kann er wieder das gleiche abschicken ! Jetzt ist die Frage wie
            ÈÈ ÊÊ ich das Verhindern kann ?

            Wenn alles klar ist, d.h. wenn seine Eingaben korrekt waren, dann machst du etwas mit den Daten.

            Jetzt ist die Frage: hast du eine Datenbank?

            Wenn ja, dann mach es wie folgt:

            In deinem Formular erstellst du eine Zufallszahl, die du in ein Hidden Feld schreibst, wenn der User alles abgeschickt hat und es war ok, dann speichere diesen wert mit einer Zeit ab und wenn der User dann wieder das Formular abschickst, dann siehst du in der Datenbank, dass es schon einmal gesendet wurde und der User bekommt eine solche Mitteilung.

            Nun zum lšschen der DatenbankeintrŠge, dafŸr ist die Zeit: wenn der nŠchste User dein Formular aufrufst, lšscht du alle DatenbankeintrŠge, die Šlter als x Minuten/Stunden/Tage sind.

            Wenn du keine Datenbank hast, mache es mit Dateien, die du nach dem Datum benennst und auch so lšschen kannst, dort schreibst du jeweils eine neue Zeile rein und liest diese dann wieder aus.

            Aber Datenbank ist natŸrlich besser.

            Wenn du noch Fragen hast, frag nur!!!

            Gruss MARC

          2. Hallo Du Geist,

            und wenn Du gleich ausführlicher Dein Problem beschrieben hättest und nicht gleich als Ziel einen Workaround (keine Lösung) gesucht hättest, wäre als Antwort gleich die Lösung gekommen. ;)

            Interessant sind für Dich entweder das direkt Weiterleiten per HTTP-Header, so dass der Besucher das Formular nur einmal zu sehen bekommt (http://www.php-faq.de/q/q-formular-mehrfach.html) oder die Nutzung einer sog. Challenge (http://www.php-faq.de/q/q-scripte-abstimmung.html).

            ABER: Wenn Du ein solches Script dazu nutzt, ein Shellscript aufzurufen, solltest Du Dich sehr intensiv mit Sicherheitsbedenken befassen. ;)

            Gruss, Thoralf

            --
            Sic Luceat Lux!
  2. also ich verstehts nicht ganz.
    Wieso sollte das Formular beim Zurück-Button automatisch abgeschickt werden?
    Oder meinst du wenn man auf "Zurück" beim Browser klickt, dass dann alles im Formular noch drin steht?
    Naja ich hab da noch keinen gesehn der bei mir zurück gegangen ist und den gleichen Text noch mal abgschickt hat.
    Das wird dir so selten passieren, dass du dir die Mühe eigentlich gar nicht machen brauchst.

    Wenn nicht sollte man am Script nachbessern aber niemals irgednwelche Sachen unterbinden, genauso wie Quellcode nicht anzeigen da einer die Site ja so "klauen" könnte. Ist genauso und bringt überhaupt nichts/keinen Schutz..

    Poste doch ma ne URL zum ansehn..

    patrick