Ankündigung

Einklappen
Keine Ankündigung bisher.

Endlosschleife ohne Script

Einklappen

Neue Werbung 2019

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

  • Endlosschleife ohne Script

    Hallo,
    und zwar haben einige meiner Besucher das Problem, dass sie in einer Endlosschleife hängen. Ich erklär mal genauer worum es geht:
    Die User starten ein Rennen, wobei hier die Endzeit in eine DB eingetragen wird. Sobald diese Zeit erreicht ist und der User die Seite besucht, wird ein Script im Header aufgerufen das einige Daten in die DB einträgt. Soweit so gut, das Rennen ist vorbei, die Endzeit in der DB wurde gelöscht und der User hat seine virtuelle Kohle und einen Bericht bekommen bla bla bla. Somit wäre die Sache eigentlich erledigt ...
    Allerdings wird das Script weiterhin ausgeführt, obwohl zu dem Rennen keine Einträge mehr in der DB bestehen. Auch geschieht dies nicht bei jedem Aufruf der Seite, sondern ist immer unterschiedlich. Es werden auch keine Cookies für das Rennen gespeichert, weshalb es daran nicht liegen kann.

    Hier nochmal der Ablauf:
    - User startet Rennen
    - Eintrag der Zeit in DB
    - Zeit erreicht = Punkte werden gutgeschrieben und Bericht wird geschickt
    - Einträge werden aus DB gelöscht, somit keine Inhalte in DB
    - Weitere Berichte des letzten Rennens, obwohl keine Infos zum Rennen bestehen
    Woran kann das liegen, dass das Script noch ausgeführt wird, obwohl es keine Informationen dafür gibt? Wäre für jede Hilfe dankbar!

    Gruß

  • #2
    Re: Endlosschleife ohne Script

    Zitat von Adrenochrom
    [... viel Text, kein Script, kein Onlinebeispiel ...]
    Wäre für jede Hilfe dankbar!
    Geh zum Hellseher. Oder bete zu dem, der das Script besser kennt als Du.

    Kommentar


    • #3
      Noch ein Versuch ...

      Es werden beim Start des Rennens Daten in die Datenbank eingetragen. Zum einen die Fahrer, Einsatz, etc. sowie das Ende des Rennens und die Seite für das Script, das ausgeführt wird sobald das Rennen beendet ist und der User die Seite besucht.
      Ist das Rennen gelaufen und der User besucht die Seite, wird die Seite mit dem Script aufgerufen die in der Datenbank gespeichert ist (Spalte logged_do). Dieses Script aktualisiert die Punkte, schickt dem User den Rennbericht und löscht die Daten des Rennens wieder aus der DB. Somit steht die Seite zum Script auch nicht mehr zur Verfügung.

      Wie ich oben bereits geschrieben habe, geschieht es nur in den seltensten Fällen, dass die User weiterhin Berichte des gleichen Rennens erhalten. Somit kann ich Dir auch kein Onlinebeispiel geben, weil das wie gesagt nicht immer der Fall ist

      header.php
      PHP-Code:
      $logginfo_sql mysql_query("SELECT logged, logged_do, logged_bis
                                                  FROM user_stats
                                                  WHERE userid = '"
      .$_SESSION['userid']."'")
                                                  OR die(
      mysql_error());
      $logginfo mysql_fetch_array($logginfo_sql);

      # Ist der User beschäftigt und das Rennen beendet?
      if($logginfo['logged'] == && $logginfo['logged_bis'] < time()) {
          
      # Rufe das Script auf
          
      include("includes/".$logginfo['logged_do']);
          } 
      Seite aus Spalte 'logged_do'
      PHP-Code:
      /* ... Fahrern die Punkte zuweisen */

      # Schicke dem User den Bericht
      mysql_query("INSERT INTO messages
                           SET von_id = '0', zu_id = '"
      .$race['platz']."', type = 'race', datum = '".time()."', nachricht = '$nachricht', betreff = 'Bericht'")
                           OR die(
      mysql_error());

      # Lösche die Infos aus der DB
      mysql_query("UPDATE user_stats
                           SET logged_bis = '', logged_do = '', logged_grund = '', logged_w1 = '',  logged_w2 = ''
                           WHERE userid = '"
      .$race['platz']."'")
                           OR die(
      mysql_error()); 
      Wenn Dir das zu viel Text ist, kann ich Dir auch gerne nur Brocken hinschmeißen ... vll kommst Du damit besser zurecht Und wenn Du hier schon einen auf Klugscheißer machst, dann kannst mir bestimmt auch sagen, was der Fehler mit meinem Script zu tun hat.

      Kommentar


      • #4
        Zitat von Adrenochrom
        Noch ein Versuch ...
        Aha. Du beschreibst ein Script, welches keiner (außer Dir) kennt und das ab und zu mal nicht funktioniert.

        [... ein Sack voll 'Splitter' aus diversen Scripten' ...]

        Es nutzt nix, wenn Du nur die Scriptteile veröffentlichst, in denen Du den Fehler vermutest und den Rest verschweigst.

        1. welche PHP Version + Konfiguration und gibt es einen Fallback beim Sessionhandling?

        2. da Du diverse SQL Operationen aufführst, könntest Du diesbezüglich etwas deutlicher werden. So 'selbsterklärend' sind Deine Spaltenbezeichner nun auch wieder nicht.

        Wenn Dir das zu viel Text ist, kann ich Dir auch gerne nur Brocken hinschmeißen ...
        Mehr als das ('nur Brocken') tust Du ja nicht.

        Und wenn Du hier schon einen auf Klugscheißer machst,
        Du verwechselst da was. Nicht ich bin es, der mit Deinem Script Probleme hat, sondern Du. Mich stört es absolut nicht, wenn bei den weltweit ... zig Millionen existierenden Scripten ein (oder mehrere) Script(e) dabei sind, die eingeschränkt funktionstüchtig sind. Das juckt mich absolut nicht.

        Ich hatte lediglich versucht, Dir mitzuteilen, daß Deine Informationen bezüglich Deines semantischen Fehlers dann unzureichend sind, wenn Du Hilfe suchst.

        Kommentar

        Lädt...
        X