Author Topic: Fatal error in class.frontend.php  (Read 1652 times)

Offline bbs2

  • Posts: 59
Fatal error in class.frontend.php
« on: March 06, 2019, 06:06:27 PM »
Hallo,

ich bekomme ca. 1 mal pro Woche folgenden Fehler

[06-Mar-2019 15:06:22 UTC] PHP Fatal error:  Cannot declare class frontend, because the name is already in use in /mnt/web203/c2/45/5705045/htdocs/homepage/framework/class.frontend.php on line 0

Muss ich mir Sorgen machen bzw. ist dies abstellbar?

System WB 2.12
PHP 7.2

Danke

Viele Grüße
Heinz Werner Seyler

Offline hgs

  • Betatester
  • **
  • Posts: 1102
    • EFG MG
Re: Fatal error in class.frontend.php
« Reply #1 on: March 07, 2019, 07:01:57 AM »
Ich würde schon mal auf die aktuelle Version WB 2.12.1 machen und dann schauen ob der Fehler immer noch auftaucht.
LG Harald

"Fange nie an, aufzuhören - höre nie auf, anzufangen." Marcus Tullius Cicero (106-43 v.Chr.)

Offline bbs2

  • Posts: 59
Re: Fatal error in class.frontend.php
« Reply #2 on: March 07, 2019, 08:19:19 AM »
Sorry für die ungenaue Angabe.
Ich nutze bereits 2.12.1.

Heinz

Offline dbs

  • Betatester
  • **
  • Posts: 7930
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Fatal error in class.frontend.php
« Reply #3 on: March 07, 2019, 08:29:46 AM »
Moinsen. An WB wird es nicht liegen.
Vielleicht an einem deiner Module (welche nutzt du, sind sie aktuell?), deinem Template oder an eigenem PHP-Code wo die class frontend nochmal aufgerufen wird.
In den bisherigen Tests ist das jedenfalls noch nie aufgetaucht.

Offline bbs2

  • Posts: 59
Re: Fatal error in class.frontend.php
« Reply #4 on: March 07, 2019, 09:17:51 AM »
Hallo,

vielleicht liegt es an Modulen, die als Überbleibsel aus WB 2.8.3 eigentlich noch gut laufen.
Evtl. ist der Zusammenhang irgendwann mal erkennbar.

Gruß

Heinz

Offline evaki

  • Posts: 2665
Re: Fatal error in class.frontend.php
« Reply #5 on: March 07, 2019, 09:34:50 AM »
Quote
Evtl. ist der Zusammenhang irgendwann mal erkennbar.
Sicherlich, denn bald kommt wieder der Osterhase und sagt:
"PHP Fatal error:  Cannot declare class frontend"  :-D :-D :-D
(hoffentlich lacht noch jemand)

Falls das nun nicht lustig rüber kam, wie wärs "mit'm bisschen genauer"? - Kontext un so -
Bei "irgendwann mal erkennbar." ist's aber wohl auch nicht so wichtig, wenn's sonst gut läuft...
Mit der nächsten PHP-Version zeigt sich das Problem vielleicht etwas deutlicher.
« Last Edit: March 07, 2019, 09:47:14 AM by evaki »
Einmal Pizza Quattro Stagioni bitte, aber ohne Herbst.

Offline jacobi22

  • Posts: 5836
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: Fatal error in class.frontend.php
« Reply #6 on: March 07, 2019, 11:15:06 AM »
Zuerst kontrollieren, ob unter WB-Optionen -> Erweiterte Optionen -> Servereinstellungen -> PHP-Fehlerberichte mindestens "Production" gewählt ist. Falls nicht, entsprechend einstellen und speichern

dann im Top-Menü des Backends auf den X-Button klicken, um die error-log anzuschauen. Klicke dort auf auf "Delete error-log"

Gehe nun ins Frontend und klicke jede Seite und Unterseite einmal durch - irgendwann wird der Fehler auftauchen. und da es ein Fatal Error ist, bricht das Script an dieser Stelle ab, es geht also auch Inhalt verloren. Meist wird das Template nicht komplett geladen, eine Sidebar fehlt usw.
Nach jeder Seite schaust du dir einmal die error-log an. Auf einer der Seiten wird es auftauchen.

Die Darstellung der Fehlermeldung dieser Art erfolgt in der Regel in der Default-Farbe des Browsers, was in den allermeisten Fällen wohl schwarz sein wird. Da muß man also aufpassen bei dunklen Hintergründen.

In Frage kommt alles, was eine Ausgabe erzeugt, Module, Droplets, Snippets, selbst ein Modul, das im Backend arbeitet.

Möglicherweise verschwindet es von allein, wenn du die Module mal upgradest - ich persönlich würde aber danach suchen und nicht drauf hoffen, das es vielleicht allein verschwindet. Da du aber die Alt-Versionen von Modulen zu bevorzugen scheinst, wird die error-log sicherlich nicht leer sein. Vielleicht ist sie auch schon so voll, das WB sie nicht mehr anzeigen kann. In diesem Fall sollte man sie per FTP herunterladen zum Nachlesen und das Original im Ordner /var/logs/ löschen.
Probleme sind da, um sie zu lösen, nicht, um nach Ausreden zu suchen.

Offline bbs2

  • Posts: 59
Re: Fatal error in class.frontend.php
« Reply #7 on: March 07, 2019, 07:54:45 PM »
Hallo,

Danke für die Tipps. Allerdings hänge ich nicht an alten Modulen. Aus der "alten Zeit" benutze ich nur noch ein
einziges Modul, nämlich die Swift Gallery. Dieses Modul selbst bringt keine Fehlermeldungen mehr, zumindest in der
php_error.log.php. Ich prüfe nun noch über die logfile im Backend.

Alle anderen Module sind auf dem neuesten, verfügbaren Stand für 2.12.1. Von der Swift gallery will ich wegkommen. Da
es sehr viele Seiten sind scheue ich noch etwas die Arbeit. Leider ist das Angebot an Modulen für 2.12.1 und php 7.x
noch etwas dünn. Dennoch alle Achtung für die "Macher" von 2.12.1; Gratulation.

Gruß
Heinz Werner

Offline evaki

  • Posts: 2665
Re: Fatal error in class.frontend.php
« Reply #8 on: March 07, 2019, 07:59:57 PM »
Die Swift Gallery schmeißt nachweislich Fehler!, wurde an anderer Stelle - wie Dir bekannt - drauf hingewiesen, auch wenn diese ohne Beeinträchtigung zu laufen scheint.
Mit der nächsten PHP-Version könnte es möglicherweise damit schon vorbei sein.
Könnte, hätte, Fahrradkette - Vorsicht ist die Mutter des Eierkartons...
MfG. Evaki
Einmal Pizza Quattro Stagioni bitte, aber ohne Herbst.

Offline jacobi22

  • Posts: 5836
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: Fatal error in class.frontend.php
« Reply #9 on: March 07, 2019, 11:32:15 PM »
Ich bräuchte mal ein reales, funktionierendes Backup der Datenbanktabellen mod_swift und mod_swift_settings. Wäre schön, wenn mir das jemand zusenden könnte.
Mailadresse: uwe@jacobi22.com

Danke
Probleme sind da, um sie zu lösen, nicht, um nach Ausreden zu suchen.

Offline evaki

  • Posts: 2665
Re: Fatal error in class.frontend.php
« Reply #10 on: March 08, 2019, 11:04:20 AM »
Mal eben von Anwendertestseite geholt (Anhang).
Sieht man mal von den aktuellen Fehlermeldungen ab, stellt sich die Frage, ob der jeweilige Pfad einer Bildergalerie nicht auch unter den Galerieeinstellunge n (BE) erscheinen müßte, also bei Anwahl/Auswahl der jeweiligen Galerie, und nicht nur bei der FE-Titelausgabe (hover). Da ich nicht weiß, ob das jemals (WB2.7, 2.8 8) ) funktioniert hat, könnte jemand schauen, ob das überhaupt vorgesehen war/ist. 

Wer darüber hinaus Bastellaune verspürt:
Statt nun wie einige Male vorgeschlagen eine Erweiterung für Beschreibungen hinzuzufügen, könnte auch die view geändert werden, so als Kompromiß. Hierbei "Titel" ohne Pfadangabe, dafür aber mit aussagekräftigen Bilddateinamen.
« Last Edit: March 08, 2019, 11:12:20 AM by evaki »
Einmal Pizza Quattro Stagioni bitte, aber ohne Herbst.

Offline evaki

  • Posts: 2665
Re: Fatal error in class.frontend.php
« Reply #11 on: March 08, 2019, 12:02:03 PM »
Nochmal was abgeholt (Anhang).
Die ersten Fixes. Ob nun nachhaltig oder noch "bedürftig", müßte noch überprüft werden.
Mir liegen keine Kommentare hierfür vor, also ob Schnellschuß oder so.
Jedenfalls gibt's mindestens zwei Meldungen nicht mehr.
Vielleicht kommt ja noch ein gescheiter/endgültiger Fix dabei raus.
Einmal Pizza Quattro Stagioni bitte, aber ohne Herbst.

Offline bbs2

  • Posts: 59
Re: Fatal error in class.frontend.php
« Reply #12 on: March 09, 2019, 09:32:45 AM »
Hallo,

ich habe die im post zuvor angehängte neue swift.php auf meinen Server gestellt. Nach einigen Tests zeigten sich
noch keine Fehler in der error.php. Das Ergebnis könnt Ihr hier sehen (4 Beispiele von über 50):

https://bbsiikl.de/pages/schulleben/galerie.php

https://bbsiikl.de/pages/schulleben/theater-ag/schoene-neue-welt/bilder-aus-schoene-neue-welt.php?gallery_id=10&start=0

https://bbsiikl.de/pages/schulleben/theater-ag/bilder-fruehlingserwachen.php?gallery_id=28&start=21

https://bbsiikl.de/pages/schulleben/partnerschulen/ruanda/bilder-von-der-schule-in-ruanda.php

Ich berichte, wenn Fehler auftreten

Viele Grüße

Heinz

Offline evaki

  • Posts: 2665
Re: Fatal error in class.frontend.php
« Reply #13 on: March 09, 2019, 10:22:41 AM »
Es wurde an anderer Stelle schon gezeigt, daß das Modul Fehlermeldungen ausgibt.
Wenn das bei Deinem Server/CMS nicht geschieht, liegen möglicherweise nicht die entsprechenden Voraussetzungen vor. 

Wenn geänderte Scripte des Moduls hier eingestellt werden, ist's wahrscheinlich begründet.
Wird ja nicht gemacht, weil wir alle sooooooooo viel Zeit haben.  :-D :-D :-D
Schönes Wochenende noch.
MfG. Evaki
« Last Edit: March 09, 2019, 10:37:10 AM by evaki »
Einmal Pizza Quattro Stagioni bitte, aber ohne Herbst.

Offline bbs2

  • Posts: 59
Re: Fatal error in class.frontend.php
« Reply #14 on: March 09, 2019, 10:41:25 AM »
Sorry,

ich habe doch, wie berichtet, genau Deine view.php eingestellt und teste diese.
Vielleicht hast Du bei meinem vorherigen post einiges missverstanden.
Ich habe mich sehr gefreut, dass Du daran arbeitest, denn meine PHP-Fähigkeiten reichen dazu nicht aus.
 
Gebe mir für die Test, letztlich durch viele Besucher der Website, noch etwas Zeit.
Wenn Fehler auftreten, berichte ich. Immerhin läuft das swift-Modul auf mehr als 50 Unterseiten (galleries).

Viele Grüße und herzlichen Dank
Heinz

Offline evaki

  • Posts: 2665
Re: Fatal error in class.frontend.php
« Reply #15 on: March 09, 2019, 11:40:34 AM »
Eine durchzechte Nacht kommt anscheinend doch nicht so gut.
Nee, mißverstanden hab ich's nicht, ich war einfach nur noch zu doof zum Lesen.
Ja, da steht ganz klar "post zuvor angehängte neue swift.php" - tschuldigung...
War wohl noch der Restalkohol
Oder einfach nur der Kater, trotz des vielen Wassertrinkens.
Aber endlich mal 'ne gescheite Begründung von mir  :-D   
Trotzdem, mit zwanzig ging das doch alles  :heul:

Hattest Du zuvor, also vor dem Austausch der Dateien, die gleichen Meldungen wie im anderen Topic angegeben?  Bin neugierig drauf, ob noch was von anderen Usern kommt.
MfG. Evaki



« Last Edit: March 09, 2019, 11:55:25 AM by evaki »
Einmal Pizza Quattro Stagioni bitte, aber ohne Herbst.

Offline dbs

  • Betatester
  • **
  • Posts: 7930
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Fatal error in class.frontend.php
« Reply #16 on: March 09, 2019, 11:57:35 AM »
Weiß nichts vom anderen Topic, war da dies dabei?
Quote
[E_WARNING] /modules/swift/view.php:[80] from /templates/my-template/index.php:[206] page_content "count(): Parameter must be an array or an object that implements Countable"

in Zeile 206 der index steht
Code: [Select]
ob_start(); page_content(1); $main       = ob_get_clean();
PHP7.3, WB 2.12.1 inkl. Fixes

Offline evaki

  • Posts: 2665
Re: Fatal error in class.frontend.php
« Reply #17 on: March 09, 2019, 12:02:29 PM »
das war der :
Code: [Select]
https://forum.WebsiteBaker.org/index.php/topic,31333.msg218689.html#msg218689ja, und dat Count-Dingens. Im neuen Script wird das wohl mit einem Splitten der Anweisung und nacheinander ausführen gelöst.
Und wie gehabt, weiß nicht ob noch was aus dem Anwenderkreis hierzu kommt.


Tja, und zu "in Zeile 206 der index steht ....." fällt mir im Moment garnichts ein. (ich assoziiere nichts  8-) ) Bin ich wieder wach, oder tu ich nur so?

Nachtrag zu Zeile 206: Könnte Dir wahrscheinlich Jacobi erklären, da der weiß wie das Paket für die Ausgabe im Frontend geschnürt wird.

In view.php:[80] sitzt der eigentliche Fehler
MfG. Evaki
« Last Edit: March 09, 2019, 12:13:36 PM by evaki »
Einmal Pizza Quattro Stagioni bitte, aber ohne Herbst.

Offline jacobi22

  • Posts: 5836
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: Fatal error in class.frontend.php
« Reply #18 on: March 09, 2019, 12:20:20 PM »
Weiß nichts vom anderen Topic, war da dies dabei?
Quote
[E_WARNING] /modules/swift/view.php:[80] from /templates/my-template/index.php:[206] page_content "count(): Parameter must be an array or an object that implements Countable"

in Zeile 206 der index steht
Code: [Select]
ob_start(); page_content(1); $main       = ob_get_clean();
PHP7.3, WB 2.12.1 inkl. Fixes

bedeutet mit "einfachen Worten" : die index.php gibt in Zeile 206 die Order, den page_content einzulesen - ist also so gesehen der "Auslöser", beim Einlesen des Page-Contents wird dann der Count-Fehler in /modules/swift/view.php:[80] entdeckt.
count() reagiert etwas empfindlich auf verschachtelte Anweisungen  und mag dann lieber eine Klammer mehr. Die Sache aufzusplitten ist aber ein einfacher Weg, diesem Problem aus dem Weg zu gehen
Probleme sind da, um sie zu lösen, nicht, um nach Ausreden zu suchen.

Offline dbs

  • Betatester
  • **
  • Posts: 7930
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Fatal error in class.frontend.php
« Reply #19 on: March 09, 2019, 01:05:54 PM »
Ok, verstanden. Die Fixes haben geholfen.
(die view.php im swift-fix-01.zip ist ANSI)

Offline evaki

  • Posts: 2665
Re: Fatal error in class.frontend.php
« Reply #20 on: March 09, 2019, 02:43:12 PM »
Anbei: swift-fix-01a.zip: utf-8 ohne BOM
(wenn der Editor nicht gesponnen hat, und alles gut gegangen ist  :roll: )
« Last Edit: March 09, 2019, 02:55:22 PM by evaki »
Einmal Pizza Quattro Stagioni bitte, aber ohne Herbst.

Offline jacobi22

  • Posts: 5836
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: Fatal error in class.frontend.php
« Reply #21 on: March 10, 2019, 12:19:14 PM »
weil ich es gerade lese - aus der im vorherigem Post angehängten view_dev! - 06.php
vielleicht interessiert es jemand, der auch gern mit PHP arbeitet

if (count($all_images)>0) {
        
$images array_slice$all_images$start$settings['thumbs_per_page']);
}
if (
natsort($all_images)>0) {
        
$images array_slice$all_images$start$settings['thumbs_per_page']);
}


Zur Erklärung:
$all_images ist ein Array mit allen Bildern bzw hier sogar Dateien, die im vorgegebenen Verzeichnis eingelesen wurden

count() soll die Teile des Array's zählen

array_slice() soll die Teile entfernen, die nicht den Vorgaben entsprechen. Im speziellen Fall gibt es einen Anfangswert und die Anzahl der Bilder pro Seite. Haben wir 100 Bilder insgesamt und wollen 20 Bilder pro Seite zeigen, macht das 100 / 20 = 5 Unterseiten a 20 Bilder, $start wäre demnach auf Seite 1 = 0, auf Seite 3 = 60.
array_slice() entfernt auf Seite 3 die Einträge 0 - 59 und 80 - 99 aus dem $all_images-Array, auf Seite 1 die Einträge 20 - 99 aus dem $all_images-Array

natsort()  - ohne natsort gäbe es die Reihenfolge beim Einlesen
1 - bild1.jpg
2 - bild10.jpg
3 - bild2.jpg

natsort() stellt eine natürliche Reihenfolge her, also bild10 hinter bild 2

obiger Code würde also den $all_images-Array zuerst zählen, dann kürzen um die Bilder die nicht benötigt werden, dann sortieren und nochmals kürzen

dieser Code wäre ausreichend
if (count($all_images)>0) {
        
$images array_slice$all_images$start$settings['thumbs_per_page']);
}
natsort($all_images);
}


P.S.: ich habe das Modul komplett recoded, als eigenständiges Modul wäre es fertig, ich möchte aber gern eine Upgradefähigkeit zur alten, originalen Swiftgallery, soll heißen, ich brauch noch etwas Zeit, um das Upgrade entsprechend anzupassen. Der Heinz (bbs2) hat mir dafür seine SwiftGallery-Backups zur Verfügung gestellt, so das auch etwas realistisches zum Testen da ist.
Probleme sind da, um sie zu lösen, nicht, um nach Ausreden zu suchen.

Offline evaki

  • Posts: 2665
Re: Fatal error in class.frontend.php
« Reply #22 on: March 10, 2019, 12:36:17 PM »
Jo, damit ist's an dieser Stelle optimiert. - ohne doppelmoppel  :-D
Mit -dev wird in der "Sandkiste" alles bezeichnet was fehlerbereingt ist, aber TODO und anderes noch nicht berücksichtigt ist. Weiß nur, daß die Pfadangaben in den Thumbs und Bildern als überflüssig, wenn nicht gar störend empfunden wurden. Um nicht neu programmieren zu müssen, weil Altmodule primär nur gefixt werden sollen, wollte man es evtl. nur soweit ändern, die Pfade rauszuschmeißen und dafür die Bilddateinamen aussagekräftiger gestalten. Übrigens nur aufgrund der Meldungen hier aus dem Forum. Soweit so gut. Nur liegt das schon wieder za. 14 Tage dort, und ich weiß nicht ob's beim rudimentären Fix bleibt.

Zumindest ist aber den Nochnutzern erstmal geholfen.
MfG. Evaki
« Last Edit: March 10, 2019, 12:41:49 PM by evaki »
Einmal Pizza Quattro Stagioni bitte, aber ohne Herbst.

Offline jacobi22

  • Posts: 5836
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: Fatal error in class.frontend.php
« Reply #23 on: March 10, 2019, 12:54:19 PM »
Quote
Zumindest ist aber den Nochnutzern erstmal geholfen.

und funktioniert ja auch so

zu den Pfaden...
ist eigentlich eher ein "Grundproblem des Moduls". Es liest Verzeichnisse aus, nix, was in der Datenbank gespeichert ist, somit auch nix, was man irgendwo zuordnen könnte. Man kann es natürlich machen wie die Foldergallery, Verzeichnis lesen, Bilder in der Datenbank speichern, dann dazu Titel und Beschreibung angeben. Aber dann braucht es das Modul nicht, kann man gleich die FG nehmen und ein Template dieser Form erstellen.

Um am Original zu bleiben, hab ich auch in der neuen Version die alte Funktion übernommen, also für das alt- und das title-Attribut den Pfad eingesetzt. Was ich machen könnte, wäre ein Schalter in den Settings, Pfad oder Gallerytitle. Den Bildnamen zerlegen bringt auch nicht viel. In den meisten Fällen (wie bei mir) sind es Zahlen, also nix mit Aussagekraft.
Probleme sind da, um sie zu lösen, nicht, um nach Ausreden zu suchen.

Offline evaki

  • Posts: 2665
Re: Fatal error in class.frontend.php
« Reply #24 on: March 10, 2019, 01:10:23 PM »
Nettes Angebot!
Pfad oder Gallerytitle, das hatte man wohl mal per Spiel mit den vorhandenen Variablen gemacht, aber wieder aufgegeben, da der Schwerpunkt auf aussagekräfigen Dateinamen lag. Auch wurde versuchsweise ein Array (ob neues oder vorh. -keine Ahnung) "angetastet" (Buffer oder so... keine Ahnung wie gehabt) um die Pfadnamen "bearbeiten" zu können. Vermutlich sollte das Ergebnis dann unter dem Attribut "Title" ausgegeben werden, was zumindest nahe liegt. Mehr als die 06-dev hab ich z.Z. leider nicht, sonst könnte man evtl. sehen was da schon versucht wurde.

Nee, ist schon sehr gut so, was Du da anpeilst. Soll ja hauptsächlich als Update dienen.
MfG. Evaki
« Last Edit: March 10, 2019, 01:18:49 PM by evaki »
Einmal Pizza Quattro Stagioni bitte, aber ohne Herbst.

 

postern-length