counter erhöht um +3 statt um +1

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

  • counter erhöht um +3 statt um +1

    hallo leute!

    ich habe einen counter der falls die url schon in der datenbank ist den wert um eins erhöht und falls nicht einen neuen eintrag macht! das klappt auch wunderbar nur komischweise werden die werte sowohl bei erst einrag als auch beim erhöhen immer um +3 erhöht statt um +1 ?! hoffe jemand kann helfen

    PHP-Code:

    <?php
    include("config.php");
    error_reporting(E_ALL);

    $url $_GET['kategorie'];

    $abfraged "SELECT * FROM counter WHERE url = '".$url."'";
    $resultd mysql_query($abfraged);
    $num_rowsd mysql_num_rows($resultd);

    if(
    $num_rowsd==0) { 
    $eintrag "INSERT INTO counter (url, count) VALUES ('$url', '1')";
    $eintragen mysql_query($eintrag); }

    if(
    $num_rowsd!=0) {
    $eintrag "UPDATE counter SET count = count + 1 WHERE url = '$url'";
    $eintragen mysql_query($eintrag); }

    $weiterleitung ="thumbnails.php?kategorie=".$url."";

    Header("Location: " $weiterleitung);
    ?>

  • #2
    der code sieht sauber* aus. solltest überprüfen, ob die seite mehrfach aufgerufen wird. sowas führt oft zu dem genannten problem.

    * sauber im sinne von fehlerfrei. Normalerweise würde man einträgen ne ID geben und sie anhand der id identifizieren. Auch der aufruf von mysql_num_rows ist überflüssig. Es gibt nur keinen oder 1 eintrag.
    Und natürlich der übliche Hinweis auf sql injections
    Zuletzt geändert von TobiaZ; 03.06.2007, 16:10.

    Kommentar


    • #3
      bin mir 100% sicher das es nicht so ist! das ist nur ein drei seiten script!

      seite eins ist galerie.php wo man eine galerie auswählen kann, die linkt dann auf die count.php und die leitet ja nach der zählung auf thumbnails.php weiter mehr seiten hat es nicht! und auf thumbnails und galerie wird mit keiner einzigen zeile die count.php aufgerufen bzw. überhaupt die tabelle count angesprochen

      edit// die tablle hat auch ne ID aber woher soll ich wissen das z.b. die kategorie "Strandparty" die ID 80 hat ? daher frag ich halt gleich nach der $kategorie ab, was "Strandparty" entspricht
      Zuletzt geändert von [DLR]; 03.06.2007, 16:11.

      Kommentar


      • #4
        und du bist der überzeugung, dass das o.g. update statt +1 ein +3 ausführt? Seeehr unwahrscheinlich.

        Kommentar


        • #5
          edit// die tablle hat auch ne ID aber woher soll ich wissen das z.b. die kategorie "Strandparty" die ID 80 hat ? daher frag ich halt gleich nach der $kategorie ab, was "Strandparty" entspricht
          Na, wenn du in dem Select schon ALLE daten holst könntest du sie auch auswerten.

          Kommentar


          • #6
            Das location ist unschön geschrieben, kleines l und kein Leerzeichen hinter dem Doppelpunkt. Würde mich aber sehr wundern, wenn das dazu führen würde, daß die Seite mehrfach aufgerufen wird....

            Dann ist der nächste Schritt debugging. Am aufwändigsten, aber komplettesten folgendermaßen:

            - Eine Datei namens log.txt anlegen/öffnen (fopen)
            - In die Datei mit fwrite() Datum, Uhrzeit, $_SERVER["REQUEST_URI"], und $_SERVER["HTTP_REFERER"]schreiben
            - Wert von count via SQL abfragen und mit fwrite() in die Datei schreiben
            - Wert erhöhen
            - Wert erneut abfragen und mit fwrite() reinschrieben
            - Und solange natürlich das die() weglassen.


            dann 1x ausführen und Du siehst, ob der Wert unsauber erhöht oder das Skript mehrfach aufgerufen wird. In letzterem Fall siehst Du auch, woher der Aufruf kam.

            WIe gesagt etwas aufwändig, aber besser als 2 Stunden weiter stochern.

            Kommentar


            • #7
              hmm ich hab die lösung! lag wohl irgendwie daran das die seite z.b. in dem verzeichniss war "http://www.beispiel.de/entsprechndes-verzeichniss/index.php"

              aber ich hatte ne *.de domain die oben in der adresszeile stehen blieb. z.b. Homepagename.de

              und jetzt hab ich halt auf www.homepagename.de/count.php gelinkt.
              wenn ich aber auf "http://www.beispiel.de/entsprechndes-verzeichniss/count.php" linke dann zählt es vernünftig auf plus 1
              warum auch immer, aber jetzt gehts

              Kommentar

              Lädt...
              X