Umstellung vom PHP 7.0 auf PHP 7.2 oder 7.3 - Seite kann nicht mehr angezeigt werden

  • Hallo,


    seid längerer Zeit wird uns in der Verwaltungsoberfläche von Joola angezeigt, dass die aktuelle PHP Version veraltet ist und auf PHP 7.2 aktualisiert werden sollte.

    Wenn wir bei uns auf dem Server auf die neue PHP Version 7.2 oder 7.3 aktualisieren, kann unsere Internetseite aber nicht mehr aufgerufen werden.


    0 - Using $this when not in object context

    Die Seite kann nicht angezeigt werden, weil:

    1. ein veraltetes Lesezeichen aufgerufen wurde.
    2. über eine Suchmaschine ein veralteter Index dieser Website aufgerufen wurde.
    3. eine falsche Adresse aufgerufen wurde.
    4. keine Zugriffsrechte für diese Seite vorhanden sind.
    5. Die angefragte Quelle wurde nicht gefunden!
    6. Während der Anfrage ist ein Fehler aufgetreten!

    Bitte eine der folgenden Seiten ausprobieren:

    Bei Problemen ist der Administrator dieser Website zuständig.



    Kann es möglich sein, dass unser aktuell installiertes Template (Siteground-j16-38) nicht kompatibel ist?
    Dies wäre der Inhalt der templates.php:


  • Hallo,


    es geht u.a. um das da:


    <?php $menu = &JSite::getMenu();


    Ein sogenannter "Call Stack" wird das vermutlich bestätigen. Siehe hier:

    Fehler finden durch detailliertere Fehlermeldung. Debug-Modus. Call stack.


    Betreffend dem Template:

    Kann es möglich sein, dass unser aktuell installiertes Template (Siteground-j16-38) nicht kompatibel ist?

    Ja, siehe hier: # 12 > Joomla Template funktioniert nicht mit neuesten PHP-Versionen


    Liebe Grüße

    Christine

  • Hallo Stierisch,


    Wenn ich auf die Seite gehe, bekomme ich das:


    0 - syntax error, unexpected 'endif' (T_ENDIF), expecting end of file


    Schau Dir die PHP-Dateien Deines Templates an und überprüfe, ob bei den Bedingungen nicht etwas durcheinander geraten ist.


    Liebe Grüße, Gerald

  • Hallo,


    ich habe die Zeile 7 in der Templates PHP mal wie im verlinkten Beitrag ersetzt.


    Leider bekomme ich immer noch eine Fehlermeldung wie oben beschrieben, sobald ich auf PHP 7.2 update und die Internetseite öffnen möchte. hmm


    0 - syntax error, unexpected 'endif' (T_ENDIF), expecting end of file

    Die Seite kann nicht angezeigt werden, weil:

    1. ein veraltetes Lesezeichen aufgerufen wurde.
    2. über eine Suchmaschine ein veralteter Index dieser Website aufgerufen wurde.
    3. eine falsche Adresse aufgerufen wurde.
    4. keine Zugriffsrechte für diese Seite vorhanden sind.
    5. Die angefragte Quelle wurde nicht gefunden!
    6. Während der Anfrage ist ein Fehler aufgetreten!

    Bitte eine der folgenden Seiten ausprobieren:

    Bei Problemen ist der Administrator dieser Website zuständig.

  • Hallo nochmal,


    wenn ich Zeile 12 entsprechend wie oben geschreiben entferne funktioniert die Seite zwar wieder, aber der Code scheint dann doch noch etwas fehlerhaft zu sein. Am Ende der Internetseite wird dann ein Teil des Codes auch direkt auf der Seite angezeigt.

    Wenn ich Zeile 12 jedoch stehen lasse bekomme ich wieder die Fehlermeldung und die Seite kann nicht aufgerufen werden.
    Habe den PHP Code über Codepad mal überprüft und es wird dann folgender Fehler ausgegeben:


    Output:

    Code
    1
    2
    Code
    Parse error: syntax error, unexpected T_ENDIF on line 12
  • Hallo hab es hin bekommen.

    In Zeile 12 war das

    <?
    endif;?>


    zu viel drin.

    Das wäre aber keine Erklärung für die ursprüngliche Fehlermeldung.

    Vermutlich betrifft es deine Seite mit den Reisemobilen, oder?

    Da hast du ganz unten jetzt Code drinstehen. D.h. da stimmt was mit der Syntax nicht!


    EDIT: Ok! Hat sich jetzt gerade überschnitten...

  • Stierisch Das sind Bedingungen, die nach bestimmtem Muster aufgebaut sind. Das ist wie eine Sprache, mit der Sätze ausformuliert werden.


    Wenn ... dann ... ansonsten wenn ... dann ... Punkt.


    Du musst Dir ansehen, wo die Bedingungen anfangen ("if") und wo sie aufhören ("endif"). Finde heraus, wo irgend eines dieser Wörter vorkommt, wo es gar nicht hingehört bzw. irgend eines dieser Wörter fehlt.


    Was ist mit der Zeile 10? Da steht ein "endif" drin, für das es kein "if" gibt. Also raus damit!


    Liebe Grüße, Gerald

  • Da steht nun überall "<?" statt "<?php" . Hast du die alle rausgelöscht?


    Da fehlt bereits in deinem Screenshot im Beitrag #1 einiges. War gar nicht aufgefallen. Anfang und Ende von PHP muss immer lauten:

    <?php .... ?>


    Nutzt du eventuell einen ungeeigneten Editor?

  • Anfang und Ende von PHP muss immer lauten:

    <?php .... ?>


    JoomlaWunder Hm, ich bilde mir ein, das war zumindest in früheren PHP-Versionen noch möglich. Sollte es jetzt einheitlich <?php ... ?> sein, kann das vielleicht erklären, warum die Seite mit einer neueren PHP-Version plötzlich nicht mehr funktioniert. In diesem Fall würde ich beim Hersteller des Templates um ein Update anfragen.


    Liebe Grüße, Gerald

  • Hm, ich bilde mir ein, das war zumindest in früheren PHP-Versionen noch möglich. Sollte es jetzt einheitlich <?php ... ?> sein, kann das vielleicht erklären, warum die Seite mit einer neueren PHP-Version plötzlich nicht mehr funktioniert.

    Ich weiß jetzt auch nicht genau, was konkret geändert wurde. Man kann die Kurzvariante irgendwie aktivieren und da kommt es dann wohl auf die Servereinstellung an. Besser man macht es immer vollständig.

    Bei PHP 5.4 war die Einstellung "short_open_tag"wohl egal. Da ging die Kurzversion wohl immer. Ich weiß nur nicht, ob das ab oder bis PHP 5.4 der Fall ist bzw. war.


    Und nun muss ich noch ein paar Ostereier suchen....