Ankündigung

Einklappen
Keine Ankündigung bisher.

Mehrfachklicks verhindern

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mehrfachklicks verhindern

    Hi allezusammen,

    Wenn ich einen Button habe, damit verbunden die Abfrage:

    if(isset($_POST... ...))
    {mysql update;}

    wird das update auf klick ausgeführt. Kloppt der User nun zig mal auf den Button bevor sich die Seite neu laden kann, wird das Update zig mal ausgefürht.

    Lösung:
    Per Button auf ne andere Seite, dort das update ausfürhen lassen, zurück. Das ist aber grad wenn es um viele Variablen geht oft nich so einfach und nervig.

    Gibt es nicht irgendeinen einfachen Trick dieses Mehrfachklicken zu unterbinden?


  • #2
    Hlft dir das eventuell ein wenig?:

    <input onclick="window.setTimeout('this.disabled=true;', 250);">
    MfG
    spoi

    Kommentar


    • #3
      ... und/oder auch folgendes lesen:

      10.19. Wie verhindere ich mehrfaches Absenden eines Formulars?
      http://www.php-faq.de/q/q-formular-mehrfach.html

      ~dilemma~

      Kommentar


      • #4
        Weiss nicht obs hilft, bekomm immer ne Fehlermeldung

        Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in...

        Also der Button:
        <input type='submit' name='submit[]' value='ok' id='button'>

        Wie bau ich des Script da rein?

        Kommentar


        • #5
          <input type='submit' name='submit[]' value='ok' id='button' onclick=\"window.setTimeout('this.disabled=true\;' , 250)\;\">

          sollte gehn
          MfG
          spoi

          Kommentar


          • #6
            Zitat von dilemma
            ... und/oder auch folgendes lesen...
            Hab ich getan, schon vor einiger Zeit, aber um ehrlich zu sein bin ich da nicht durchgestigen.

            Ich baus mal ein, vielleicht klappts ja dies mal wenn nicht melde ich mich wieder

            Thx bis hier her...

            Kommentar


            • #7
              Habs drin, aber funktioniert leider nicht... Schade, wär ne simple Lösung gewesen... Naja, dann bedarfs halt doch mehr als nur einer Zeile...

              Kommentar


              • #8
                Zitat von dilemma
                ... und/oder auch folgendes lesen:

                10.19. Wie verhindere ich mehrfaches Absenden eines Formulars?
                http://www.php-faq.de/q/q-formular-mehrfach.html

                ~dilemma~

                Kommentar


                • #9
                  Zitat von Apfeltyp
                  Zitat von dilemma
                  ... und/oder auch folgendes lesen...
                  Ich baus mal ein, vielleicht klappts ja dies mal wenn nicht melde ich mich wieder

                  Thx bis hier her...
                  Danke Bruchpilot dass du mir den Post von dilemma nochmal Zitiert hast, hätt ja sein können ich vergesse es!

                  Kommentar


                  • #10
                    Na was sollen wir denn aus
                    Habs drin, aber funktioniert leider nicht...
                    schließen?
                    Der Code bei http://www.php-faq.de/q/q-formular-mehrfach.html funktioniert. Also ist es kein schlechter Gedanke, sich das ganze nochmal durchzulesen.

                    ...oder Du beschreibst Dein momentanes Problem mit dem Code näher.

                    Kommentar


                    • #11
                      "Habs drin, aber funktioniert leider nicht" war auf:
                      <input type='submit' name='submit[]' value='ok' id='button' onclick=\"window.setTimeout('this.disabled=true\;' , 250)\;\">
                      bezogen!

                      "Und Ich baus mal ein, vielleicht klappts ja dies mal" war auf:
                      http://www.php-faq.de/q/q-formular-mehrfach.html
                      bezogen. Das wollte ich vor ner weile schon mal einbauen, aber da war mein PHP leider noch arg embrional. Neues Spiel neues Glück... Bis gleich

                      Kommentar


                      • #12
                        Ah so. Na dann viel Erfolg.

                        Kommentar


                        • #13
                          Also irgendwie klappt das nicht so wie ich will...

                          PHP-Code:
                          <?php
                          mysql_query
                          ("UPDATE klickcheck Set klicks = '5' WHERE id = '1'");
                          if(
                          mysql_affected_rows() == 1)
                          {
                          andere updates}
                          ?>
                          Das hat eigentlich hingehauen, aber nur wenn in "klicks" ne andere Zahl als 5 stand. Das überschreiben der 5 mit 5 wurde nicht wirklich gezählt. Dann hab ichs mit "klicks = time()" versucht, da wurden die updates auch nicht gewertet.

                          Funktioniert das Ding denn nur in ner function?

                          Kommentar


                          • #14
                            mysql_affected_rows() liefert nur dann einen Wert > 0 zurück, wenn tatsächlich Änderungen stattgefunden haben. Wenn vorher in der Spalte klicks schon 5 stand hat bei klicks = 5 natürlich keine Veränderung stattgefunden.

                            Kommentar


                            • #15
                              PHP-Code:
                              <?php
                              <?php 
                              mysql_query
                              ("UPDATE klickcheck Set klicks = klicks +1 WHERE id = '1'"); 
                              if(
                              mysql_affected_rows() == 1
                              {
                              andere updates
                              ?>
                              ?>
                              So hab ichs z.B. auch versucht... Da ändert er nun ja wirklich jedes mal... Aber nach 10 mal klicken waren auch 10 mal die "anderen updates" ausgeführt...

                              Ich krieg echt noch ne Scheibe mit diesem kram...

                              Ich hab auch schon versucht bei jedem updaten en timestamp reinzuknallen und fürs nächste update extra zu fragen ob der timestamp kleiner "aktuell -2" ist... aber das juckt den nicht. Der haut fleissig updates in die Datenbank, klick für klick...

                              Wenn die Leuts da schnelle Finger haben hauen die 20 mal auf die Maus bevor irgendwas aktualisiert...

                              Kommentar

                              Lädt...
                              X