Thread Verfasser: Diver-Danny
Thread ID: 1488
Thread Info
Es gibt 26 Beiträge zu diesem Thema, und es wurde 8008 Mal angesehen.
 Thema drucken
Forum, Nachricht wird nicht angezeigt.
Diver-Danny
Hallo Layzee,
wie kann man denn den Fehler vollständig beheben?Ich möchte auch dazu schreiben,daß ich mich mit PHP und PHP Fusion noch nicht so gut auskenne.Bin also noch ganz am Anfang.
Muss ich jetzt alles komplett neu machen?
Gruß
Danny
Du willst den Charakter eines Menschen erkennen, so gebe ihm Macht.

Gruß
Danny
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Layzee
Die von Systemweb benannten Fehler kommen allesamt aus dem HTML-Sektor.
Das bedeutet, Du hast vermutlich einige Panels mit "eigenem Code" angelegt und evtl auch das Eine oder Andere in der theme.php geändert (soweit meine Vermutung).
HTML unterliegt, genau wie PHP, einer grundlegenden Syntax. Diese besagt unter Anderem, dass sogenannte TAGs (die Befehle die mit "<" beginnen) immer einen öffnenden Tag (zb <a href="blubb.html">) und einen schliessenden Tag (in dem Fall dann </a>) benötigen. Ausnahmen gibt es zb beim Zeilenumbruch (<br>) der so zwar noch funktioniert, in "neuer Schreibweise" aber gleichzeitig beides ist (<br />). Ähnlich verhält es sich beim <img>-Tag.

Nehmen wir als Beispiel mal ein einfaches DIV.
Zuerst sagen wir dem Browser, dass an dieser Stelle ein DIV-Container beginnt:
<div>
(die Attribute lassen wir zuer Vereinfachung der Darstellung an dieser Stelle einmal weg)
Hinter diesem öffnenden <div>-Tag definieren wir dann den INHALT dieses DIV-Containers. In diesem Fall mal einfach nur Text:
<p>
Der öffnende "Pragraph"-oder auch "Absatz"-Tag.
DIES IST DER TEXT DER IM DIV CONTAINER STEHT
</p>
Der Paragraph-Tag wird geschlossen
</div>
Der DIV-Container wird geschlossen.

Als fertiger Code sieht das Ganze dann so aus:


<div>
<p>DIES IST DER TEXT DER IM DIV CONTAINER STEHT</p>
</div>



Wichtig ist also, dass dem Browser vereinfacht ausgedrückt immer anhand dieser grundlegenden Regel mitgeteilt wird, wo etwas beginnt und wo etwas aufhört. Beachtet man diese Regel nicht, interpretiert der Browser Deinen HTML-Code wie er es gerade für "richtig" hält. Hierdurch entstehen dann oft eben auch diese unterschiedlichen Darstellungen in unterschiedlichen Browsern.

Ein guter Ansatz zur Behebung solcher Fehler sind der W3C-Validator und die in den meisten Browsern inzwischen integrierten Entwicklertools, die Dir Fehler ebenfalls anzeigen und Dir auch die Stelle verraten, wo dieser Fehler auftritt. Ist zwar nervig und mitunter auch Zeitaufwendig, aber wie gesagt, ein notwendiges Übel, denn eine Rückstufung auf eine frühere PHP-Version ist sicherlich keine zufriedenstellende und dauerhafte Lösung.
Bearbeitet von Layzee am 22. Mai 2018 08:38:46
Information:
PHP Version: 7.2.x •  MySQL Version: 8.0 •  PHP-Fusion: IUP-FIX-PHP8
 
Diver-Danny
Hallo Layzee,
ja das stimmt ich habe einige Panels mit eigenen HTML befüllt.An dem Theme habe ich nichts verändert.Ausser das ich das Logo ausgetauscht habe und Links in das Dropdown Menü geschrieben habe.So wie es in der Beschreibung steht.Ich kann mir gut vorstellen,daß ich dabei schon einiges falsch gemacht habe,durch meine nichtkentnisse .Beispiel, das Impressum konnte von der Startseite geöffnet werden.Ging man aber auf eine andere Seite und wollte man von da aus auf das Impressum.Konnte die Seite nicht gefunden werden.
Du willst den Charakter eines Menschen erkennen, so gebe ihm Macht.

Gruß
Danny
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Layzee
Man sollte unter PHP-Fusion auch keine "relativen" Linkpfade verwenden.
PHP-Fusion macht es Dir sogar recht einfach anhand von Konstanten, die man auch bei der internen Verlinkung wie zb in der Navigation nutzen kann und sollte.

Dir wird doch bestimmt in Deinem Theme schonmal die Konstante BASEDIR aufgefallen sein oder?
Statt also einen Link zu setzen, der einen relativen Pfad verwendet wie zb

<a href="pages/seite5.php">Seite 5</a>

schreibt man dann

<a href="'.BASEDIR.'pages/seite5.php">Seite 5</a>


Grund:
Angenommen, der Besucher Deiner Webseite befindet sich gerade im Forum (und damit auch im Verzeichnis "/forum") und möchte nun direkt von dort aus über die Navigation auf die Seite "Seite 5" wechseln.
Ist der Link dorthin über den relativen Pfad wie im ersten Beispiel gesetzt, sucht der Browser im Verzeichnis "/forum" nach dem Unterverzeichnis "/pages" - das er dort natürlich nicht findet.
Setzt man die Konstante BASEDIR ein, wird der Pfad immer ausgehend vom Rootverzeichnis der Webseite gesetzt, und dort gibt es dann den Unterordner "/pages" und die Seite wird gefunden.

Bildlich ausgedrückt wäre das in etwa so als würdest Du in Deiner Wohnung im Badezimmer stehen und willst in die Küche, die nur über den Flur erreichbar ist. Zeigt ein Pfeil nun direkt "durch die Wände" zur Küche, rennst Du vor die Wand, hast ein Fragezeiechen über dem Kopf und sagst oder denkst "äh, nee, geht nicht...". Zeigt dieser Pfeil aber erst den Weg zum Flur und dann zur Küche, kannst Du ihm folgen. ;)

Ähnliches kann man zb mit Grafiken machen. Liegen diese im Verzeichnis "/images", kann man die Konstante IMAGES nutzen.
Liegen die Bilder im Verzeichnis "/images" im Themeordner, kann man die Konstante THEME verwenden (in diesem Fall dann '.THEME.'images/bild.jpg
Bearbeitet von Layzee am 22. Mai 2018 10:45:00
Information:
PHP Version: 7.2.x •  MySQL Version: 8.0 •  PHP-Fusion: IUP-FIX-PHP8
 
Diver-Danny
Hallo Layzee,
erstmal Dankeschön für die kleine Einführung.Jetzt ist ja mein PHP Fusion,ich benenne es mal so,auf eine ältere Version umgestellt.
Natürlich möchte ich die aktuellste nutzen. Das bedeutet jetzt für mich.Das ich die Seite neu aufsetzten muss?

Gruß
Danny
Du willst den Charakter eines Menschen erkennen, so gebe ihm Macht.

Gruß
Danny
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Layzee
Soweit ich das verstanden habe ist nicht Deine PHP-Fusion Version auf eine ältere Version umgestellt sondern Deine PHP Version (das wird leider oft verwechselt).
PHP-Fusion ist das CMS, PHP die "Software" auf dem Server, mit der man "arbeiten" kann. PHP-Fusion kann ohne PHP auf dem (Web-)Server nicht funktionieren.

Warum es bei Dir nun mit einer älteren PHP-Version funktioniert kann ich bei dem beschriebenen Fehlerbild offen gestanden nicht so ganz nachvollziehen.

Wie ich bereits schrieb, ist das Beseitigen der von Systemweb genannten Fehler durchaus wichtig, es ist aber denke ich nicht zwingend erforderlich, gleich alles neu zu machen.
Im Gegenteil. Wenn man sich mit den Fehlern mal auseinandersetzt und versucht sie zu beheben anhand der hier bereits genannten Tipps und ggf einschlägiger Literatur im Web (wie zb SelfHTML), tritt auch ein gewisser Lerneffekt ein. Die grundlegende Syntax einer "Programmiersprache" (ich weiss, HTML ist keine Programmiersprache...) ist nun einmal wichtig und muss zwingend eingehalten werden um solche und ähnliche Fehler zu vermeiden. Was hilft es Dir denn wenn Du jetzt alles neu aufsetzt und die gleichen Fehler wieder machst?

HTML lernt man, wenn man konzentriert an die Sache rangeht, in ca 2-3 Tagen, denn so wahnsinnig kompliziert ist es wirklich nicht.

Übrigens haben die meisten heutigen Coder genau so angefangen und sich nach dem "Trial-and-Error"-Prinzip autodidaktisch vieles selbst beigebracht. Und gerade bei PHP-Fusion ist das auch nötig, denn es gibt faktisch keine ausführliche und wirklich vollständige Dokumentation. Auch uns wurde das Wissen letztendlich nicht in die Wiege gelegt Wink
Bearbeitet von Layzee am 25. Mai 2018 06:34:49
Information:
PHP Version: 7.2.x •  MySQL Version: 8.0 •  PHP-Fusion: IUP-FIX-PHP8
 
Springe ins Forum: