Insert wird zweimal ausgeführt

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

  • Insert wird zweimal ausgeführt

    Hallo Freunde,
    nach Tagen Suche, Ausprobieren und Stress wende ich mich an euch bittend um Hilfe. Ich habe ein PHP_Skript programmiert, das eine mysql-Anfrage beinhaltet. Um genauer zu sein, handelt es sich um eine INSERT-Anfrage, ich möchte einfach die Besucher der Webseite zählen. Das blöde ist, dass diese Insert-Anfrage 2-mal ausgeführt wird--> ich bekomme also immer 2 Einträge, wenn einer auf die Webseite kommt. Ich habe das Fragment, wo die INSERT-Anfrage ausgeführt wird, in einer Funktion gemacht, die ich an der Stelle aufrufe, wo ich sie brauche. Und ich bin mir ganz sicher, dass ich sie nur einmal im Dokument aufrufe und ich lasse die Seite auch nicht automatisch aktualisieren. Das wird also nur einmal ausgeführt.
    Fast das gleiche Problem habe ich an einer anderen Stelle, ich habe eine Funktion programmiert, mit dessen Hilfe ich emails schicken lasse. Die wird auch 2-mal ausgeführt--> der Empfänger bekommt 2 gleiche Emails.
    Ich drehe durch....
    Danke im Vorraus!!!
    PS: fragt einfach, wenn ihr den Code braucht. Ich kann ihn hochladen.

  • #2
    Tu das.
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      fragt einfach, wenn ihr den Code braucht. Ich kann ihn hochladen
      Also ich brauche den nicht unbedingt für mich, aber wenn du Hilfe erwartest, dann wäre etwas Code sehr schön

      Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        Re: Insert wird zweimal ausgeführt

        Hi

        Original geschrieben von adouzi
        Und ich bin mir ganz sicher, dass ich sie nur einmal im Dokument aufrufe und ich lasse die Seite auch nicht automatisch aktualisieren. Das wird also nur einmal ausgeführt.
        das ist ja schön dass du dir sicher bist. Aber wenn man sich mal überlegt
        wie zwei operationen zustande kommen können bleiben eigentlich nur 3
        möglichkeiten.

        1) du rufst die funktion doch öfter als 1 mal auf
        2) die funktion selbst führt die operation in ihrem körper 2 mal aus.
        3) es handelt sich um einen bug den du nicht verursacht hast
        (das ist sehr sehr unwahrscheinlich)

        Ich tippe auf 1

        greets
        (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

        Kommentar


        • #5
          Der Quellcode

          Die Funktion, um die es sich handelt, ist die setBenutzer()
          //////////////////////////////////////////////////////////////////////////////////
          [COLOR=blue]Das Fragment in index.php, wo die Funktion aufgerufen wird: [/COLOR]
          PHP-Code:


          // Benutzer in [besucher] eintragen, um die BenutzerAnzahl zu ermitteln
          include("./system/funktionen.inc.php");
          setBenutzer(); 
          /////////////////////////////////////////////////////////////////////////////////
          [COLOR=blue]Die Datei system/funktionen.inc.php, wo die Funktion deklariert ist: [/COLOR]
          PHP-Code:
          function setBenutzer(){ 
              @include(
          "../var/conn.inc.php");
              @include(
          "./var/conn.inc.php");
              
              
          $ipgetenv('REMOTE_ADDR');
              
          $jetztmktime(date("H"),date("i"),date("s"),date("m"), date("d"), date("Y")); //Jetzt
              
          $query"insert into ".$var['besucher']." (ip,datum) values('$ip','$jetzt')";
              
          $wmysql_query($query);
          // setBenutzer() 
          Zuletzt geändert von adouzi; 27.10.2006, 23:12.

          Kommentar


          • #6
            Re: Der Quellcode

            Wenn du Quellcode postest, nutze dafür bitte [php]-Tags, und Umbrüche nicht vergessen - steht alles in den Regeln.
            Das Syntax-Highlighting erhöht die Verständlichkeit.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Original geschrieben von jahlives
              Also ich brauche den nicht unbedingt für mich, aber wenn du Hilfe erwartest, dann wäre etwas Code sehr schön

              Gruss

              tobi
              Ich habe den Quellcode hochgeladen. Es ist kein Problem, wenn du ihn verwenden möchtest. Das wenn dir der Stil gefallen hat und wenn wir das Problem beseitigen, sonst wäre ein Einsatz dieses Quellcodes sinnlos
              Ich habe ihn am Anfang nicht hochgeladen, wegen Platzgründen, nicht mehr
              Danke für deine Antwort

              Kommentar


              • #8
                Hallo Freunde, ich brauche euere Hilfe!!!

                Kommentar


                • #9
                  hm wenn ich deinen Code richtig verstehe, müsste er eigentlich bei jedem aufruf der index.php einen besucher 'zählen'.. ich weiß ja nich genau, was du zählen willst, aber normalerweise macht so ein ein counter bzw. das IP speichern nur sinn, wenn du vorher überprüft, ob die IP bereits vorhanden ist.

                  un was ist $var['besucher'] ?
                  PHP Forum
                  Sessions in PHP
                  Loginsystem mit PHP erstellen

                  Kommentar


                  • #10
                    Original geschrieben von Hirnhamster
                    hm wenn ich deinen Code richtig verstehe, müsste er eigentlich bei jedem aufruf der index.php einen besucher 'zählen'.. ich weiß ja nich genau, was du zählen willst, aber normalerweise macht so ein ein counter bzw. das IP speichern nur sinn, wenn du vorher überprüft, ob die IP bereits vorhanden ist.

                    un was ist $var['besucher'] ?
                    $var['besucher'] => Sie ist einfach eine Variable, mit deren Hilfe ich den Namen der Tabelle hole. Mit anderen Worten habe ich in der Varibale den Namen der Tabelle gespeichert.
                    Ich speichere alle IP-Adressen, damit ich 2 Sachen gleichzeitig erreichen kann:
                    1) Wie viele überhaupt auf die Webseite gekommen sind und
                    2) aus welchem Land kommen sie
                    Eigentlich besteht die index.php aus mehr Quellcode. Wenn ich diesen Quellcode-Rest entferne, funktioniert es einwandfrei. Ansonsten werden immer 2 Datensätze gespeichert. Das obwohl der Quellcode-Rest die Funktion nicht enthält und keine Aktualisierung der Webseite verursacht. Ich drehe durch.
                    Danke für deine Hilfe. wenn du den Quellcode-Rest sehen möchtest, sag bitte einfach Bescheid. Deine Hilfe wird mir bestimmt helfen.
                    Danke nochmal

                    Kommentar


                    • #11
                      1) Wie viele überhaupt auf die Webseite gekommen sind
                      Dann hast du aber den falschen Ansatz, weil du jeden(!) aufruf der index.php speicherst. Drück mal F5, dann wird dir klar was ich meine
                      DAnn hast du 20 mal die gleiche IP in deiner Datenbank.. das wird voll

                      Der Name einer Tabelle ist ja afaik immer der selbe, oder legst du etwa für jeden besucher eine neue tabelle an

                      Ansonsten werden immer 2 Datensätze gespeichert. Das obwohl der Quellcode-Rest die Funktion nicht enthält und keine Aktualisierung der Webseite verursacht. Ich drehe durch.
                      Ja nun.. das hört sich aber irgendwie schon danach an, als würde die Funktion 2 mal aufgerufen ^^
                      PHP Forum
                      Sessions in PHP
                      Loginsystem mit PHP erstellen

                      Kommentar


                      • #12
                        Original geschrieben von Hirnhamster
                        Dann hast du aber den falschen Ansatz, weil du jeden(!) aufruf der index.php speicherst. Drück mal F5, dann wird dir klar was ich meine
                        DAnn hast du 20 mal die gleiche IP in deiner Datenbank.. das wird voll
                        Ich möchte einfach am Anfang alle Besucher der Webseite merken. Auch wenn sie mehrmals auf der Webseite sind. Sagen wir es mal so, ich möchte nicht die Besucher zählen sondern die Zugriffe. Also wie viel Mals wurde die Webseite überhaupt aufgerufen (wenn ich merke die Tabelle wird zu Groß, kann ich die IPs, die mehr als 1-mal auftauchen, immer noch löschen)

                        Der Name einer Tabelle ist ja afaik immer der selbe, oder legst du etwa für jeden besucher eine neue tabelle an
                        der Name ist fest. Er ist einfach in der Variable gespeichert. Ich tue das immer so, damit ich es verhindern kann, alle Dateien zu ändern, wenn ich einfach den Namen einer Tabelle ändere. In diesem Falle kann ich einfach den Inhalt der Variable ändern. Dann gilt das für alle Queries, die auf diese Tabelle ausgeführt werden.


                        Ja nun.. das hört sich aber irgendwie schon danach an, als würde die Funktion 2 mal aufgerufen ^^
                        Ich bin sicher, dass ich die Funktion nur einmal aufrufe. Ich kann dir den gesamten Quellcode hochladen, wenn du möchtest:P

                        Kommentar


                        • #13
                          1. Ja, den ganzen Code bitte.
                          2. mach mal in die Funktion SetBenutzer() folgende Zeile rein:
                          PHP-Code:
                          echo "Hier spricht der Fehlerteufel. <br>"
                          Dann sag uns was uns dein Dokument sagt.

                          A: 1. Nur einmal der Satz: Großes Problem. KA
                          2. Zweimal: Na siehste, also doch 2mal executet.

                          Mal gucken was kommt^^
                          Ich kann: Deutsch, Englisch, Französisch, Japanisch (im Aufbau)
                          PHP, CSS 2.1, JS, Delphi, C
                          Ich mag: Japan, Speedmetal, H3nta1s(^^)

                          Kommentar


                          • #14
                            Original geschrieben von ThE_-_BliZZarD

                            2. mach mal in die Funktion SetBenutzer() folgende Zeile rein:
                            PHP-Code:
                            echo "Hier spricht der Fehlerteufel. <br>"
                            Dann sag uns was uns dein Dokument sagt.

                            A: 1. Nur einmal der Satz: Großes Problem. KA
                            2. Zweimal: Na siehste, also doch 2mal executet.

                            Mal gucken was kommt^^
                            1. Das habe ich schon probiert. Der Satz wird nur einmal ausgegeben!!!
                            Zuletzt geändert von adouzi; 11.11.2006, 16:13.

                            Kommentar


                            • #15
                              keiner wollte helfen. Ich danke euch allen auf jeden Fall

                              Kommentar

                              Lädt...
                              X