Weisser Bildschirm und die Fehlermeldung Error displaying error Page nach dem Abruf einer Funktion (PHP) per include

  • Hallo zusammen,


    Ich nutze seit Jahren schon eine selbstgeschriebene Funktion zum automatischen anpassen verschiedener Links.
    Diese Funktion wird über diesen Code abgerufen:

    Code
    1. include("aktu.php");aktualisierung();


    Plötzlich bleibt die Seite weiß, und zeigt die Fehlermeldung "Error displaying error Page "an .


    Wenn ich die Funktion abschalte funktioniert die Seite.


    Ich kann mir alle Variabeln aus der Funktion mit echo anzeigen lassen. Somit kann ich sehen dass alles in der Funktion funktioniert. Diese Ausgaben werden von der Fehlermeldung gefolgt.


    Ich benutze Joomla 3.8.2, PHP 7, Debian 9, Mariadb.


    Ich habe erst vor kurzem die Migration auf dem neuen Server gemacht. Mir ist erst jetzt aufgefallen dass die Funktion nicht läuft.


    Kurz zusammen gefasst: Die Funktion wird abgerufen und ausgeführt, aber die Webseite stoppt nach der Funktion.
    Ich finde auch keine LOG-Datei die mir den Fehler zeigt. Es scheint kein PHP-Fehler zu sein.
    Komisch.


    Kennt jemand das Problem ?



    Danke im Voraus !


    Gruß,


    Shaka


    EDIT:
    Ich konnte nun die Fehlermeldung anzeigen lassen mit einer Änderung in der php.ini . die wiefolgt lautet:
    "failed to start the session because headers has already been sent by aktu.php in line 5

    Code
    1. $mysqli=new mysqli("localhost", "Benutzer", "Password", "Datenbankname");
  • Ok, sieht so aus als ob ich mich evtl. in der Linie vertan habe. Der Code der Probleme macht lautet


    Code
    1. echo "OK";


    Ein kleiner Hinweis für mich dass die Funktion läuft.


    Wenn ich das herausnehme und mit "//" deaktiviere läuft meine Funktion.


    Wieso kann ich kein ECHO benutzen ?


    Gruß,


    Shaka

  • Ohne das script zu sehen kann man wenig sagen.
    An sich geht echo, ich mache allerdings nach einem echo meistens ein exit; ausser in Views natürlich.


    Um einen Ablauf zu testen kannst du eine IDE verwenden und Haltepunkte setzen.


    Ich weiss ja nicht, wie dein script aussieht, aber wenn es innerhalb von Joomla läuft brauchst du das

    Code
    1. $mysqli=new mysqli("localhost", "Benutzer", "Password", "Datenbankname");


    nicht sondern nimmst

    Code
    1. $mysqli=JFactory::getDbo();


    Vielleicht hilft dir auch eine Debug-Methode die ich gelegentlich einsetze, dann hast du ein Log-File.