Doppelklick verhindern

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

  • Doppelklick verhindern

    Hallo,

    da wir in der Firma immer wieder Leute haben, die bei einem Formular unbedingt einen Doppoelklick auf den Absenden Button machen müssen, suche ich eine gute Möglichkeit dies zu unterbinden.
    Sessions scheinen zu langsam zu sein, durch das schnelle Absenden werden beide Anforderungen parallel abgearbeitet, wodurch die Sessionvariable beim zweiten Script noch nicht gefüllt ist.
    Jemand eine Idee, was man da machen könnte?
    TBT

    Die zwei wichtigsten Regeln für eine berufliche Karriere:
    1. Verrate niemals alles was du weißt!


    PHP 2 AllPatrizier II Browsergame

  • #2
    die leute kenn ich auch

    zur zeit behelfe ich mir hiermit:
    Code:
    <input type="submit" value="Anmelden" onClick="this.value='Bitte warten ...'" >
    und schreibe dick und fett drunter: "bitte nur einmal klicken"

    an weiteren ideen bin ich auch interessiert.

    Kommentar


    • #3
      mir ist da gerade eine Idee gekommen, ich muß mal was testen ...

      eventuell kann man das per DB abfangen
      TBT

      Die zwei wichtigsten Regeln für eine berufliche Karriere:
      1. Verrate niemals alles was du weißt!


      PHP 2 AllPatrizier II Browsergame

      Kommentar


      • #4
        Wenn Du's Dir leisten kannst, noch ne Tabelle in MySQL anzulegen, könntest Du eine extra Tabelle anlegen, in der Du so etwas prüfst, oder direkt in der Usertabelle. Oder eben in der Tabelle, in der User via Session erkannt wird.

        Du könntest z.B.

        PHP-Code:

        // DB abfragen

        if ( $db['zeit']  < time() ) {

        // Insert

        $sql "
        UPDATE user 
        SET last_click = DATE_ADD(NOW(), INTERVAL 3 SECOND) 
        WHERE userid = '"
        .$_SESSION['uid']."' LIMIT 1";


        weiß aber nicht, ob das perfomance bedingt, sinnvoll ist

        Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
        sondern mit den Augen das Manual zu lesen.

        Kommentar


        • #5
          statt "bitte warten" müsstest du den button auch "disablen" können.

          allerdings ist die db-variante inho besser, wenn's denn klappt.
          Kissolino.com

          Kommentar


          • #6
            Wie wäre es denn, wenn du ne Datei nimmst, die du flockst. Denn genau gleichzeitig geht ja nicht, und es wird nur ein Script (-aufruf) die Datei locken können. Wenn du das prüfst, kannst du sicherstellen, dass immer nur ein Script zur Zeit in die DB schreiben kann. Und wenn dem so ist, dann kannste ja auch gucken, ob ein Wert schon in der DB steht.

            Allerdings noch nicht (von mir) praktisch getestet.
            hopka.net!

            Kommentar


            • #7
              über DB klappt nicht, da MySQL auch threaded arbeitet, und die zweite Anfrage schneller als das Update/Replace der ersten ist.
              flock() dürfte ausfallen, da ich sonst für jeden User so eine Sperrdatei verwalten müßte.

              Ich probiere mal JS ...
              TBT

              Die zwei wichtigsten Regeln für eine berufliche Karriere:
              1. Verrate niemals alles was du weißt!


              PHP 2 AllPatrizier II Browsergame

              Kommentar


              • #8
                du kannst mit JS bei onDblClick eine Meldung ausgeben und bei onClick zuerst den Button disable, dann form senden

                Kommentar


                • #9
                  die js-methode ist, wenn aktiviert, eigentlich ganz gängig ...

                  nach einem klick wird der button/das formular entfernt, eine nachricht geziegt ...
                  Die Zeit hat ihre Kinder längst gefressen

                  Kommentar


                  • #10
                    - onDblClick reagiert bei mir gar nicht Firefox 1.0 on Debian Linux

                    - wenn ich den Button bei onClick auf disabled setze, kommt das "submit" nicht an,
                    da muß ich erst das Script ändern, was ich nicht wirklich wollte (wenn es sein muß aber geht)

                    - bei onClick mal dieses Script ausprobiert
                    PHP-Code:
                    <script type="text/javascript" language="JavaScript">
                        var 
                    send 0;
                        function 
                    check() {
                            if( 
                    send == ) {
                                
                    send 1;
                                return 
                    true;
                            }
                            
                    alert'Doubleclick!' );
                            return 
                    false;
                          }
                    </
                    script
                    bei einem einfach Click ist alles ok, bei einem Doppelklick zeigt die JS Konsole ein "Error: check is not defined" ???
                    TBT

                    Die zwei wichtigsten Regeln für eine berufliche Karriere:
                    1. Verrate niemals alles was du weißt!


                    PHP 2 AllPatrizier II Browsergame

                    Kommentar


                    • #11
                      Original geschrieben von derHund
                      nach einem klick wird der button/das formular entfernt ...
                      kann man einen Button noch anklicken, wenn visible = false eingestellt ist ?
                      das wäre sonst 'ne Idee, ohne meinen PHP Code umzubauen
                      TBT

                      Die zwei wichtigsten Regeln für eine berufliche Karriere:
                      1. Verrate niemals alles was du weißt!


                      PHP 2 AllPatrizier II Browsergame

                      Kommentar


                      • #12
                        Original geschrieben von TBT
                        kann man einen Button noch anklicken, wenn visible = false eingestellt ist ?
                        das wäre sonst 'ne Idee, ohne meinen PHP Code umzubauen
                        Ne kann man nicht, sofern JS aktiviert ist

                        Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                        sondern mit den Augen das Manual zu lesen.

                        Kommentar


                        • #13
                          Original geschrieben von xManUx
                          sofern JS aktiviert ist
                          JS ist aktiviert, das deaktivieren kann ich als Admin ja abklemmen
                          TBT

                          Die zwei wichtigsten Regeln für eine berufliche Karriere:
                          1. Verrate niemals alles was du weißt!


                          PHP 2 AllPatrizier II Browsergame

                          Kommentar


                          • #14
                            wie hast du den Button definiert? type="button" oder type="submit"?
                            ich würde type="button" setzen und folgenden Fkt. in onClick einbauen:
                            PHP-Code:
                            <script type="text/javascript">
                            <!--
                            var 
                            clicked false;
                            function 
                            send_form(btn) {
                               if (!
                            clicked) {
                                  
                            clicked true;
                                  
                            document.getElementsByName(btn.name).disable=true;
                                  
                            this.form.submit();
                               } else 
                            alert('whateveryouwant');
                            }
                            -->
                            </
                            script>
                            ...
                            <
                            input type="button" name="bnt" value="send" onClick="send_form(this);"
                            Bemerkung: ungetestet

                            Kommentar


                            • #15
                              einfacher !

                              Code:
                               onclick="this.style.visibility='hidden';"
                              beim Button selber reicht aus, was nicht da ist, kann nicht angeklickt werden
                              TBT

                              Die zwei wichtigsten Regeln für eine berufliche Karriere:
                              1. Verrate niemals alles was du weißt!


                              PHP 2 AllPatrizier II Browsergame

                              Kommentar

                              Lädt...
                              X