carsten schlichting: Programmiertechnik aktualisierung des Browsers.

Hi
steuere meine PHP seite (index.php) mit schaltflächen die z. B. so gehen:href="index.php?scha=2"

Die Variable hier scha=2 wird ausgelesen und das PHPscript gesteuert.

Jetzt ist folgendes problem aufgetreten. In der der adresszeile steht natürlich jetzt auch ...index.php?scha=2  und wenn der Browser aktualisiert wird denkt das script, dass eine Schaltfläche gedrückt worden ist.

Wie kann man sowas umgehen?

viele Grüße carsten

  1. Wie kann man sowas umgehen?

    11.4. Sollte ich besser GET oder POST verwenden?
    http://www.php-faq.de/q/q-formular-methode.html

  2. Ahoi carsten schlichting,

    Wie kann man sowas umgehen?

    möglichkeit a:
    Deine Schaltflächen sind Submit-Buttons und das Form steht auf
    method="get" ändere das auf post.

    möglichkeit b:
    Deine Schaltflächen sind links, ändere diese in submit-buttons steck sie
    in ein form und benutze post.

    möglichkeit c:
    lass dein script es sich merken das die Schaltfläche geklickt wurde und
    lass es jeden weiteren klick darauf ignorieren.

    MfG

    --
    Alle Angaben wie immer ohne Gewähr
    LEISE IST SCHEISSE!
  3. Hi
    steuere meine PHP seite (index.php) mit schaltflächen die z. B. so gehen:href="index.php?scha=2"

    Die Variable hier scha=2 wird ausgelesen und das PHPscript gesteuert.

    Jetzt ist folgendes problem aufgetreten. In der der adresszeile steht natürlich jetzt auch ...index.php?scha=2  und wenn der Browser aktualisiert wird denkt das script, dass eine Schaltfläche gedrückt worden ist.

    Wie kann man sowas umgehen?

    viele Grüße carsten

    Das Problem hatte ich letztens auch, genau so ist es, wenn an eine php-seite formular-daten übergeben werden. Ich hab das dann - provisorisch - so gelöst, dass nach abarbeitung der Variable (hier scha) mittels meta-umleitung dieselbe seite nochmal aufgerufen wird, aber diesmal ohne scha=2

    1. Ahoi Marc,

      Ich hab das dann - provisorisch - so gelöst, dass nach abarbeitung der Variable (hier scha) mittels meta-umleitung dieselbe seite nochmal aufgerufen wird, aber diesmal ohne scha=2

      Das ist aber wirklich eine provisorische Notlösung, du kennst den Zurück
      Button den so ziemlich jeder Browser "anbietet"?

      MfG

      --
      Alle Angaben wie immer ohne Gewähr
      LEISE IST SCHEISSE!
    2. echo $begrüßung;

      Ich hab das dann - provisorisch - so gelöst, dass nach abarbeitung der Variable (hier scha) mittels meta-umleitung dieselbe seite nochmal aufgerufen wird, aber diesmal ohne scha=2

      Eine Meta-Umleitung macht die Zurück-Funktion des Browswer kaputt. Eine Umleitung per Location-Header macht das nicht.

      Mit welcher Lösung hast du dann das Provisorium abgelöst?

      echo "$verabschiedung $name";

  4. Hiho,

    je nach Anwendungsgebiet:

    • verwende eine Session, in der du speicherst das die Aktion ebreits ausgeführt wurde
    • füge deinem Link einen Zufallscode an, der beim generieren des Links serverseitig gespeichert wird. Nach Aufruf des Links und Abarbeitung der Aufgaben markiere diesen Zufallscode als "bearbeitet".

    Grüße

    Marc

    1. Hi

      danke für den Tip  -  glaub, dass das mit der Zufallszahl eine gute Lösung ist.

      werde wahrscheinlich anstatt dem zufallswert einfach eine variable hochzählen lassen und in der SESSION abspeichern.

      was passiert denn eigentlich bei dem zurück-button am Browser. Da wird doch einfach die letzte URL oben eingegeben. das ist auch noch einmal ein Problem, das ich lösen muß. Theoretisch müßte ich ja alle aufrufe der seite mit einer variable durchzählen und alle $variablen_werte in arrays abspeichern- oder?

      Also grüße und danke nochmal

      carsten

      1. Hallo carsten.

        was passiert denn eigentlich bei dem zurück-button am Browser.

        Das ist browser- bzw. IEabhängig.

        Da wird doch einfach die letzte URL oben eingegeben.

        Eher nicht. In den meisten Fällen wird vielmehr die letzte im Browsercache befindliche Version der betroffenen Seite aufgerufen (aus diesem Grund muss man in modernen Browsern Formulare--bis auf Passwortfelder--nicht noch ein Mal ausfüllen). Doch auch dieses Verhalten und der tatsächliche Umfang sind Konfigurationssache.

        Einen schönen Dienstag noch.

        Gruß, Ashura

        --
        Selfcode: sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:) fl:( ss:) ls:[ js:|
        30 Days to becoming an Opera8 Lover -- Firefox tools for Opera built-ins
        Meine Browser: Opera 8.02 | Firefox 1.0.6 | Lynx 2.8.5 | Netscape 4.7 | IE 6.0
        MathML fetzt