with packageID '0' is invalid?

Shorty1968

Erfahrenes Mitglied
Hallo ich war lange nicht mehr hier,ich kamm auch ganz gut zu recht aber nun habe ich einen fehler der mich an meine Grenzen gebracht hat.

Ich bekomme bei einer alten entwicklung von mir die ich nun wider einsetze Folgenden Fehler.
Code:
Fatal error: Object 'wcf.tutorialsystem' with packageID '0' is invalid
Information:
error message: Object 'wcf.tutorialsystem' with packageID '0' is invalid
error code: 0
file: /var/www/vhosts/have-fun-community.de/httpdocs/wcf/lib/data/rating/Rating.class.php (50)
php version: 5.3.29
wcf version: 1.1.10 pl 2 (Tempest)
date: Mon, 13 Feb 2017 16:23:04 +0000
request: /index.php?page=TutorialSystemTutorial&tutorialID=25
referer: https://have-fun-community.de/index.php?page=TutorialSystemOverview&s=e1d0e79cf3811a53b6a140fa428ad3055e4c6a34
Stacktrace:
#0 /var/www/vhosts/have-fun-community.de/httpdocs/wcf/lib/page/TutorialSystemTutorialPage.class.php(187): Rating->__construct('wcf.tutorialsys...', '25', 0)
#1 /var/www/vhosts/have-fun-community.de/httpdocs/wcf/lib/page/AbstractPage.class.php(90): TutorialSystemTutorialPage->readData()
#2 /var/www/vhosts/have-fun-community.de/httpdocs/wcf/lib/page/TutorialSystemTutorialPage.class.php(335): AbstractPage->show()
#3 /var/www/vhosts/have-fun-community.de/httpdocs/wcf/lib/page/AbstractPage.class.php(46): TutorialSystemTutorialPage->show()
#4 /var/www/vhosts/have-fun-community.de/httpdocs/wcf/lib/util/RequestHandler.class.php(64): AbstractPage->__construct()
#5 /var/www/vhosts/have-fun-community.de/httpdocs/wcf/lib/util/RequestHandler.class.php(92): RequestHandler->__construct('TutorialSystemT...', Array, 'page')
#6 /var/www/vhosts/have-fun-community.de/httpdocs/index.php(8): RequestHandler::handle(Array)
#7 {main}
Der Fehler muss in Folgendem Code Teil liegen.
Code:
$this->rating = new Rating('wcf.tutorialsystem', $this->tutorial->tutorialID, $this->packageID);
Ich weiss leider nicht wie und was ich an $this->packageID ändern muss damit der Fehler weg ist,kann mir da hier jemand helfen?
 
Wie sieht das Objekt, das sich hinter dem $this verbirgt, aus?

Ohne etwas mehr Infos können wir leider nur raten.
 
Sorry verstehe die Frage nicht,wie meinst du das welches Objekt sich hinter dem $this verbirgt?

Ich hänge am besten mal die Datei an in der sich der Fehler befinden müsste,ich konnte in bisher leider nur auf den oben benannten Code aus der Datei eingrenzen.
Es handelt sich da um ein Bewertungssystem welches mit Intigriert ist.
 

Anhänge

  • TutorialSystemTutorialPage.class.zip
    2,7 KB · Aufrufe: 4
Ich habe mir mal die Datei angesehen.
Jedoch liefert er den Wert 0 der ja Invalid ist zurück.

Von wem ist das Plugin?!
Ich könnte mir vorstellen, dass es daran liegt, dass packageID = 0 nicht das selbe ist wie packageID === null
Denn null ist es ja nicht, da vom Script vordefiniert ist dass es 0 ist, also als Integer Wert 0.

Daher kennt er den Wert 0, aber bei der Prüfung (Zeile ab 159)
PHP:
        // try to get package id
        if (($this->packageID = WCF::getPackageID('eu.wbb-support.TutorialSystem')) === null) {
            // set cache file path
            $cacheFilePath = WCF_DIR . 'cache/cache.tutorialSystemPackageID.php';
           
            // check for cache file
            if (is_readable($cacheFilePath) == true) {
                // get package id from cache file
                $this->packageID = intval(file_get_contents($cacheFilePath));
            }
            else {
                // get package id from database
                $sql = "SELECT    packageID
                    FROM    wcf".WCF_N."_package
                        WHERE    package = 'eu.wbb-support.TutorialSystem'";
                $row = WCF::getDB()->getFirstRow($sql);
               
                // set package id
                $this->packageID = $row['packageID'];
               
                // write package id to cache file
                $cacheFile = new File($cacheFilePath);
                $cacheFile->write($this->packageID);
                $cacheFile->close();
            }
        }

Wird jedoch geprüft ob das Objekt Null ist.
Versuch mal bei dem ersten IF-Element am ende ein else mit Fehelr Prozedur.

Ich könnte mir vorstellen, dass das der Grund des ganzen ist.
Allerdings kann Ich mich auch irren :)
 
Sorry das ich jetzt erst Antworte,hatte an der Arbeit viel zutun.

Ich weiss leider nicht wie das mit else mit Fehelr Prozedur geht?
 

Neue Beiträge

Zurück