Markus: PHP-Script verändert CSS-Formatierung der gesamten Seite

Hallo zusammen!

Das Einbinden eines PHP-Scripts ist für mich absolutes Neuland und ich habe nun folgendes Problem. Zwar läuft das von mir eingebundene Script einwandfrei (von der Funktionalität her), leider entstehen dadurch aber auch Probleme mit der CSS-Formatierung. Das Layout ist eine Tabellenkonstruktion und die PHP-Datei habe ich per "include-befehl" in die Datei des gesamten Layouts integriert. Das Script wird auch soweit angezeigt, nur sind die Eigenschaften des Textes und CSS-Formatierungen quasi wahllos durcheinander gewirbelt. Der Text scheint zentriert ausgerichtet zu sein, was bei der nicht-includeten PHP-Datei nicht der Fall ist. Auch die Schriftfarbe ist nicht die im Skript definierte, sondern die Textfarbe der CSS-Datei der Gesamtseite. Meine Frage daher: Wie kann ich ein solches Skript mit den skript-eigenen Eigenschaften per "Include" einbinden, OHNE dabei Probleme mit der CSS-Formatierung der Gesamtseite zu bekommen?

Um das ganze besser nachvollziehen zu können:

---> URL der Seite mit includeter PHP-Datei:
http://web790.sv16.pixelx.de/orange_sunset/page1.php

---> URL der ursprünglichen/nicht-eingebundenen PHP-Script-Datei
http://web790.sv16.pixelx.de/orange_sunset/webnews/index.php

---> URL der Config-Datei, um die CSS-Elemente des Scripts anzupassen
http://web790.sv16.pixelx.de/orange_sunset/webnews/config.php

---> URL der CSS-Datei, die die Definitionen der Gesamtseite enthält:
http://web790.sv16.pixelx.de/orange_sunset/style/style.css

---> URL einer weiteren CSS-Datei zur Farbanpassung (wohl irrelevant)
http://web790.sv16.pixelx.de/orange_sunset/style/colour.css

Hoffe, dass ihr mir weiterhelfen könnt.

Dank im Voraus,

mit freundlichen Grüßen,

Markus

  1. Hi,

    leider entstehen dadurch aber auch Probleme mit der CSS-Formatierung.

    es entstehen Probleme mit dem HTML-Code. Nicht nur, dass bereits die eingebundene Seite invalide ist; selbst wenn Du dies reparierst, ist ein komplettes HTML-Dokument innerhalb eines HTML-Dokuments aber sowas von ungültig. Das *kann* nicht funktionieren. Auftretende Probleme sind absolut selbstverständlich.

    Das Layout ist eine Tabellenkonstruktion

    Repariere diesen Fehler als erstes.

    und die PHP-Datei habe ich per "include-befehl" in die Datei des gesamten Layouts integriert. Das Script wird auch soweit angezeigt, nur sind die Eigenschaften des Textes und CSS-Formatierungen quasi wahllos durcheinander gewirbelt.

    Natürlich. Erstelle zunächst *statisch* genau das Dokument, das am Ende herauskommen soll. Erst dann bemühe Dich, dieses Ergebnis mit PHP zu erzielen.

    Um das ganze besser nachvollziehen zu können:

    Noch besser, genauer gesagt mit links, wäre es mit Links nachzuvollziehen.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi!

      Erstmal danke für deine Antwort.

      Aber sonderlich hilfreich ist dies auch nicht.
      Du hast mir zwar gesagt, dass es nicht so funktionieren kann, aber das bringt mich einer Lösung des Problems auch nicht näher.

      Wenn ich dich richtig verstanden habe soll ich nun das Mittel der Tabelle für die Erstellung des Weblayouts ganz weglassen, da gerade dadurch meine Probleme entstehen. Natürlich könnte ich eine Seite mit Frames machen. Dann wäre es kein Problem, das PHP-Script einzubinden. Nur werde ich gewiss keine Website mit Frames erstellen können, die mir vom Design her gefallen wird. Mir fehlen einfach Programmierkenntnisse um eine schöne Seite ohne Frames zu gestalten, deshalb hatte ich mich dazu entschlossen, ein fertiges Template zu nutzen. Nur habe ich auch nirgendwo ein vorgefertigtes und gut aussehendes Template OHNE Tabellenkonstruktion gesehen.
      Meine Kenntnisse reichen zwar aus, um Vorlagen und Skripte nach meinen Wünschen anzupassen, aber eine vom Design her gleichwertige Seite werde ich in Eigenregie kaum auf die Beine stellen können.
      Deshalb nochmal die Frage:

      Gibt es denn gar keine Möglichkeit ein PHP-Skript in ein solches tabellenbasiertes Layout einzubinden, ohne dass dadurch derartige Probleme entstehen?

      Natürlich. Erstelle zunächst *statisch* genau das Dokument, das am Ende herauskommen soll. Erst dann bemühe Dich, dieses Ergebnis mit PHP zu erzielen.

      <-- Kannst du mir das nochmal genauer erklären?

      Sorry, aber für einen Anfänger wie mich bereiten oftmals auch an sich einfache Dinge Probleme.

      MfG,

      Markus

      1. hi,

        Du hast mir zwar gesagt, dass es nicht so funktionieren kann, aber das bringt mich einer Lösung des Problems auch nicht näher.

        Es kann nur "funktionieren", wenn du korrektes HTML und CSS erstellst.

        Wenn du einfach ein komplettes HTML-Dokument in ein anderes einbindest, dann hast du darin nachher zwei mal <html>, zwei mal <head>, zwei mal <body>. Diese Elemente tauchen aber in einem korrekten HTML-Dokument (höchstens) ein Mal auf.

        Also sorge dafür, dass du ein solches korrektes HTML-Dokument erstellst - und keinen Nonsense.

        Wenn ich dich richtig verstanden habe soll ich nun das Mittel der Tabelle für die Erstellung des Weblayouts ganz weglassen, da gerade dadurch meine Probleme entstehen.

        Ja, natürlich.
        (Die Probleme sind aber idR. anderer Natur, mit deinem speziellen Problem hier hat das _erstmal_ nichts zu tun.)

        Natürlich könnte ich eine Seite mit Frames machen.

        Nein, das wäre noch viel schlimmer.

        Gibt es denn gar keine Möglichkeit ein PHP-Skript in ein solches tabellenbasiertes Layout einzubinden, ohne dass dadurch derartige Probleme entstehen?

        Doch, natürlich - wenn das PHP-Script kein vollständiges HTML-Dokument ausgibt, sondern nur die Elemente, die in einer Tabellen(zelle) auch erlaubt sind.

        Natürlich. Erstelle zunächst *statisch* genau das Dokument, das am Ende herauskommen soll. Erst dann bemühe Dich, dieses Ergebnis mit PHP zu erzielen.

        <-- Kannst du mir das nochmal genauer erklären?

        Fang mit _statischem_ HTML an - erstelle ein syntaktisch korrektes HTML-Gerüst (zum Überprüfen lasse dieses validieren), und formatiere dieses wie gewünscht.
        Bestimmte Teile dieses Gerüstes durch _dynamische_ Bestandteile auszutauschen, darum kannst du dich später kümmern - wobei du dann natürlich wieder darauf achtest, dass auch durch die dynamische Einbindung von HTML-Elementen wieder nur die jenigen Elemente ins Dokument eingefügt werden, die an der jeweligen Stelle auch erlaubt sind.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Hi!

          Habe das Problem selber lösen können, indem ich nämlich die footer.php und header.php als leere Dokumente abgespeichert habe, sodass die doppelten html- und head-tags aus der Zieldatei weg sind. Darüber hinaus habe ich die CSS-Definitionen aus der Config-Datei entfernt, sodass das Design des Scripts jetzt über die Definition der Gesamtseite läuft. Sieht nun so aus, wie ich es mir auch vorgestellt habe. Nochmal danke für euer Bemühen, einem Frischling wie mir auf die Sprünge zu helfen.

      2. Moin

        Natürlich könnte ich eine Seite mit Frames machen. Dann wäre es kein Problem, das PHP-Script einzubinden.

        Dies wäre sicher die ungünstigste Lösung. Cheatah meinte eine Seitenstruktur ohne Frames oder Tabellen, sondern mit Divs und anderen HTML-Elementen.

        Das Problem bei deiner Seite ist, das ein HTML und Body Tag 2mal geöffnet und geschlossen wird. Somit hat der Browser Probleme das CSS zuzuordnen. Das CSS liegt außerdem noch "irgendwo" im HTML-Gerüst. So wie der Code ausschaut kann es wirklich nicht funktionieren.

        Natürlich. Erstelle zunächst *statisch* genau das Dokument, das am Ende herauskommen soll. Erst dann bemühe Dich, dieses Ergebnis mit PHP zu erzielen.

        <-- Kannst du mir das nochmal genauer erklären?

        Erstelle erst die Seite so wie sie aussehen soll in einfachen HTML und CSS und setz diese erst dann in PHP um, um vom gewünschten Ergebnis auszugehen.

        Sorry, aber für einen Anfänger wie mich bereiten oftmals auch an sich einfache Dinge Probleme.

        Wir waren alle mal Anfänger.

        Gruß Bobby

        --
        -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
        -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
        ie:{ br:> fl:{ va:{ ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
      3. Hallo,

        Wenn ich dich richtig verstanden habe soll ich nun das Mittel der Tabelle für die Erstellung des Weblayouts ganz weglassen, da gerade dadurch meine Probleme entstehen.

        Bis hierhin richtig.

        Natürlich könnte ich eine Seite mit Frames machen.

        Nein, das solltest du erst recht nicht machen. Besser als Frames sind Tabellen allemal, aber <http://de.selfhtml.org/css/layouts/index.htm@title=CSS basierte Layouts> sind eben noch besser, weil semantischer und leichter zu pflegen.

        Nur werde ich gewiss keine Website mit Frames erstellen können, die mir vom Design her gefallen wird. […]Mir fehlen einfach Programmierkenntnisse um eine schöne Seite ohne Frames zu gestalten,

        Stell dir vor: Du brauchst für derartige gestalterische Dinge erstmal überhaupt *keine* Programmierkenntnisse. Du musst lediglich wissen, wie CSS funktioniert.

        Meine Kenntnisse reichen zwar aus, um Vorlagen und Skripte nach meinen Wünschen anzupassen, aber eine vom Design her gleichwertige Seite werde ich in Eigenregie kaum auf die Beine stellen können.

        Ich denke das kommt so nach und nach, wenn du CSS lernst. Ansonsten kannst du dir doch aber auch einfach ein fertiges Template anschauen und versuchen, es mehr oder weniger, deinen Wünschen entsprechend, nachzubauen. Dann weißt du wenigstens, wie alles funktioniert und kannst auch ohne Probleme diverse Änderungen vornehmen.

        mfg. Daniel