nach include werden Leerzeilen eingefügt und Dateiname mit Variable ergänzen

  • Hallo liebe Helfer,


    ich habe ein Problem bei dem Einbinden von Dateien mit include und eine Frage zu dem Erweitern von Dateinamen innerhalb der include-Anweisung mit einer Variablen - oder aber einer Alternative zu dem Vorgehen :).


    In dem HTML-Dokument soll lediglich der Rahmen aller Seiten festgelegt werden. Mittels der Include-Dateien will ich den Inhalte der Bildschirmbereiche (bis auf die Bereiche aside und section immer den gleichen Inhalt) laden.


    1. Problem: Die PHP-Dateien werden mit include geladen, aber es werden Leerzeilen zwischen den Dateien eingefügt bzw. die Blöcke werden verschoben. Woran liegt das und wie kann ich es ändern?


    2. Frage: Die Dateiennamen asideINC.php und sectionINC.php haben Inhalt, der von den übrigen Bereichen abweicht. Also ruft der Benutzer nach dem Laden der Hauptseite z.B. die Unterseite "Hilfe" über das Menü in "steuerungoben" (siehe Datei nav_str_obenINC.php unten) auf, soll die Datei aside_hilfe_1INC.php und section_hilfe_1INC.php aufrufen. Um das für alle Unterseiten leichter zu bewerkstelligen, soll der Dateiname in der include-Anweisung mittels Variablen, festgelegt in den jeweiligen Seiten, verändert werden. Wie kann ich das am Besten bewerkstelligen?


    3. Frage: Gibt es einen gänzlich anderen Ansatz, mit dem ich es am einfachsten erreiche, dass der feststehenden Bereiche nur einmal programmiert werden muss und dann der Content der Bereiche section und aside nur verändert werden muss, ohne immer den gesamten Code der feststehenden Bereiche zu wiederholen?


    Lieben Dank an alle Helfer im Voraus!


    Hier mein Code:


    1. HTML des Hauptdokuments XYZ.php



    Meine CSS:



    als Beispiel header.php:


    Code
    <header>
        <a href="/XYZ/XYZ.php" title="Hauptmenü">
            <img src="/XYZ/IMG/CC_Kopf_1360x70.png" alt="Grafik: Hauptmenü" width="100%" />
        </a>
    </header>


    als Beispiel nav_str_obenINC.php:


    Code
    <nav id="steuerungoben">
        <ul>
            <li><a href=" /XYZ/XYZ.php">Hauptmenü</a></li>
            <li><a href=" /XYZ/kontakt_1.php">Kontakt</a></li>
            <li><a href=" /XYZ/hilfe_1.php">Hilfe</a></li>
          </ul>
    </nav>
  • Zur ersten Frage vielleicht einen Hinweis, da mir auch schon passiert


    Probier mal die Leerzeichen rauszunehmen aus dem Script:


    PHP
    <?php include("PHP/headerINC.php"); include("PHP/nav_str_obenINC.php"); include("PHP/nav_str_linksINC.php"); include("PHP/sectionINC.php"); include("PHP/asideINC.php"); include("PHP/footerINC.php");?>

    Nur so ne Idee.

  • Code
    <nav id="steuerungoben">
        <ul>
            <li><a href=" /XYZ/XYZ.php">Hauptmenü</a></li>
            <li><a href=" /XYZ/kontakt_1.php">Kontakt</a></li>
            <li><a href=" /XYZ/hilfe_1.php">Hilfe</a></li>
          </ul>
    </nav>

    href=" /XYZ darf auch kein leerzeichen zwischen sein .Es könnte ( wird ) sein das er dann nicht zu den Link geht weil es den Link nicht gibt.

    Aber zu den anderen Problem habe ich kein plan,weil verstehe nicht was du meinst .Wird aber an mir liegen

  • Hallo


    Zitat

    Gibt es einen gänzlich anderen Ansatz, mit dem ich es am einfachsten erreiche, dass der feststehenden Bereiche nur einmal programmiert werden muss und dann der Content der Bereiche section und aside nur verändert werden muss, ohne immer den gesamten Code der feststehenden Bereiche zu wiederholen?


    Ja, aber die Lösung mit php-include ist aktuell die sinnvollste.


    Zitat

    Die PHP-Dateien werden mit include geladen, aber es werden Leerzeilen zwischen den Dateien eingefügt bzw. die Blöcke werden verschoben. Woran liegt das und wie kann ich es ändern?


    Das liegt an deinem CSS. Leider zeigst du uns die entscheidenen Passagen nicht. Mit deinen Angaben erhalte ich das folgende Ergebnis:


    Beispiel mit vorhandenen Informationen


    Die Fehlermeldungen interessieren nicht da die include-Dateien nicht vorhanden sind.


    Zwischen header und nav gibt es aber keine Abstände. Mit deinen Angaben können wir dein Problem also nicht nachvollziehen, der problematische Quelltext fehlt.


    Insgesamt fällt auf das deine CSS-Kenntnisse veraltet sind, du solltest dich auf den aktuellen Stand bringen.


    Zudem enthalten deine CSS-Angaben Rechtschreibfehler. Dabei kann ein Editor helfen, der solche Fehler farblich hervorhebt.


    Gruss


    MrMurphy

  • Hallo Basti,


    also erstmal vielen Dank wieder für deine Reaktion.


    Das mit den Leerzeichen ist richtig und wird korrigiert. Danke dafür schon mal.


    Dann am Besten der Reihe nach (und wenn du etwas nicht von meinem Geschreibsel verstehst, dann liegt das ja wohl nur an mir :)).


    Habe mal Bilder eingebaut.


    1. So sollte es aussehen und so sieht es aus, wenn ich den Code direkt in das Hauptdokument schreibe:


    html-seminar.de/woltlab/attachment/1383/


    2. So sieht es aus, wenn ich den Header und die steuerungoben mit include einbaue (es werden Leerzeilen eingefügt):

    html-seminar.de/woltlab/attachment/1382/


    PHP
    <div id="wrapper">    
        
        <?php
            include("PHP/headerINC.php");
            include("PHP/nav_str_obenINC.php");
        ?>


    Den Code der beiden Dateien habe ich ja schon oben gepostet.


    Danke nochmal für die Hilfe!

  • Hallo


    Wie schon geschrieben: Mit deinen Angaben ist das Problem für uns nicht nachvollziehbar.


    Am sinnvollsten wäre ein Online-Beispiel von dir. Im Moment muss jeder Einzelne, der dir helfen möchte, auf seinem Rechner dein Beispiel nachbauen. Um dann festzustellen, dass das Problem aus deinen Angaben nicht vorhanden ist.


    Eventuell hast du den Cache nicht geleert.


    Oder auf dem Server befinden sich Dateien oder veraltete Dateien, die lokal nicht mehr bestehen.


    Gruss


    MrMurphy

  • Hallo MrMurphy,


    vielen Dank, dass auch du dich hier eingeschaltet hast, um mir zu helfen.

    Zitat

    Das liegt an deinem CSS. Leider zeigst du uns die entscheidenen Passagen nicht.

    Welche sollen das denn sein. Ich habe zwar nur den Code von 2 Dateien die per include geladen werden sollen gepostet, aber mehr steht da nicht drin (auch nicht in den anderen). Solltest du diesen aber zusätzlich benötigen, poste ich den auch noch gerne Code auch noch.

    Zitat


    Insgesamt fällt auf das deine CSS-Kenntnisse veraltet sind, du solltest dich auf den aktuellen Stand bringen.

    Hast du da ein Tipp für mich (z.B. online Tutorial oder Literatur)?


    Zitat


    Zudem enthalten deine CSS-Angaben Rechtschreibfehler. Dabei kann ein Editor helfen, der solche Fehler farblich hervorhebt.


    Auch hier: hast du eine Empfehlung für einen Editor für mich. Habe alles mit dem Windows Notepad geschreiben und nun erstmal Aptana runtergeladen. Gibt es etwas besseres? :)


    Danke auch an dich für die Hilfe im Voraus!

  • Hallo


    Zitat

    Welche sollen das denn sein.


    Keine Ahnung. Du zeigst uns ja leider kein Online-Beispiel. Somit ist nur klar dass deine Angaben dein Problem nicht zeigen, wie an meiner Beispielseite sichtbar ist. Abstände entstehen schließlich nicht zufällig.


    Zitat

    Solltest du diesen aber zusätzlich benötigen, poste ich den auch noch gerne Code auch noch.


    Das wird nicht viel helfen. Zudem nervt es immer wieder nach fehlendem Quelltext zu fragen. olkostbe und basti1012 haben dein Beispiel offensichtlich auch nicht nachgebaut sondern einfach mal geraten. Wenn du Hilfe wünscht solltest du den Helfenden auch die notwendigen Angaben ohne Gezappel zur Verfügung stellen.


    Zitat

    Hast du da ein Tipp für mich (z.B. online Tutorial oder Literatur)?


    Dazu kenne ich mich zu wenig aus. Die Bücher und Videotrainings von Peter Müller (manchmal auch als Peter M. Müller) sind kompetent und gut nachvollziehbar geschrieben.


    Zitat

    hast du eine Empfehlung für einen Editor für mich


    Auch schwierig. Editoren müssen zum Nutzer passen. Ich selbst verwende Sublime Text 2 (aktuell Sublime Text 3) mit einigen AddOns. Der kostet etwas und das Menü und die Anleitung gibt es nur auf englisch. Du musst halt etwas suchen. Es ist halt hilfreich wenn der Editor Begriffe, die es in HTML / CSS / PHP nicht gibt farblich markiert. In deinem CSS zum Beispiel "background-colcor" oder "absolut".


    Gruss


    MrMurphy

  • zum anfang ist html-seminar nicht schlecht. Für grund Kentnisse in html und css doch sehr zu empfehlen.

    Ansonsten einfach googlen da gibt es noch viele andere möglichkeiten .


    Hast du dein Code schon irgendwie Online. Weil ein Online Beispiel ist immer einfacher als nur Codeschnipsel.

    Wenn es Online ist muss der php Code zusetzlich gepostet werden weil wir ja den nicht sehen.


    Wenn noch nix Online ist oder eine Beispiel Seite vorhanden ist ,wäre ein Kompletter Code zum Vorteil. Jeder der versucht zu helfen kann den Code dann kopieren und bei sich im Editor rein kopieren und somit den Fehler viel schneller finden .Ansonsten müssen wir raten wie der rest Code aussehen könnte und müssen den erst nachbauen.Das kostet Zeit und auch öfters nerven.


    Fals du deine Seite hier nicht öffentlich posten möchtest können wir das auch verstehen.Wäre nur schön wenn du es dann auch sagst dann weiß man bescheid und baut sich dann doch den Rest zusammen und man brauch nicht ewig fragen.

    Du kannst den Link auch per PN an den Leuten schicken die dir helfen.

    mfg basti

  • Zitat

    hast du eine Empfehlung für einen Editor für mich

    Selbst bin ich gerade auf Visual Studio Code umgestiegen und sehr zufrieden. Um richtige PHP-Unterstützung zu bekommen, musste ich etwas frickeln und ein paar Plugins installieren. Aber sonst gut und nicht so ein Monster wie Visual Studio Community.

  • Hallo an alle,


    und viele Dank für Eure Hilfe. Leider bin ich aus privaten Gründen am WE nicht zum Antworten gekommen. Sorry.


    Also wie ich schon mal erwähnte, bin ich Neuling in dem Bereich. Auch hier im Forum. Also habt etwas Geduld mit mir. Danke dafür im Voraus.


    Ich habe hier mal zwei Test-Seiten online gestellt (auf einem Temporären Webserver).


    http://www.hertweckscloud.myds.me/XYZ/XYZ.php (Beispiel-Seite ohne include)


    http://www.hertweckscloud.myds.me/XYZ/XYZist.php (Beispiel-Seite mit include)


    Ich hoffe, ihr könnt etwas damit anfangen.


    Vielen Dank für Eure Hilfe im Voraus.

  • Ich hoffe, ihr könnt etwas damit anfangen.


    Vielen Dank für Eure Hilfe im Voraus.

    weiß nicht was du damit meinst? Hast du irgendwelche Probleme ? Oder woltest du die mal nur so zeigen?

    Ich würde noch änder.

    1. Deine ganzen <br> könntest du über css regeln.

    2.<div id="wrapper"> damit hast du die ganze Seite in ein div gepackt. Eigentlich macht man <footer und co da nicht rein.Aber das ist nicht Gesetz.Ich rede nur wie ich es machen würde.

    3.Fals eine verlinkung sich nicht öffnet liegt es an deine Leerzeichen die du hinter "href="hier/bla.de" hinterläßt.

    4.Dann das

    Code
    <h1 style="text-align: center;">Beispiel Text 1!</h1>

    würde ich über Css machen.



    css würde ich zb das

    Code
    padding-top: 0px;
        padding-right: 0px;
        padding-bottom: 0px;
            padding-left: 0px;

    in das ändern

    Code
    padding:0;



    EDIT: das hier width="400px" geht meines wissen nicht .Das px muss weg

    Code
    p id="txtleft";>Copyright by XYZ</p> 
            <p id="txtright";>

    Was haben die doppel Punkte da zu suchen ?

  • Hallo


    Wie ich vermutete läßt sich das Problem nur am praktischen Beispiel nachvollziehen.


    Die Ursache läßt sich nicht so einfach erkären.


    Jede Datei enthält unsichtbare Steuerzeichen, zum Beispiel für Zeilen- oder Absatzumbrüche.


    In der Datei mit den ungewollten Abständen befinden sich zwei dieser unsichtbaren Steuerzeichen. Ich weiß aber nicht was sie eigentlich bewirken sollen oder wie sie entstanden sind und kann deshalb nur raten. Entweder hast du ungewollt und unbewußt eine Tastenkombination gedrückt, die die Steuerzeichen einfügt oder dein Editor hat sie einfach so eingefügt oder sie sind beim Übertragen durch das FTP-Programm eingefügt worden. Es gibt aber noch mehr Möglichkeiten.


    Und zwar befinden sich die Steuerzeichen unmittelbar vor den öffnenden spitzen Klammern von


    Code
    <header>


    und vor


    Code
    <nav id="steuerungoben">


    Du kannst die Steuerzeichen direkt sehen und löschen wenn dein Editor die Datei mit den ungewollten Abständen im HEX-Modus anzeigen kann.


    Ansonsten stellst du den Cursor am besten ans Ende der jeweils vorigen Zeile und markierst den Inhalt bis einschließlich der öffnenden spitzen Klammer, löscht den markierten Teil und fügst die gelöschten Zeichen über die Tastatur wieder ein.


    Nachtrag:


    Vorweg: Das Problem hat nichts mit PHP oder dem include-Befehl zu tun.


    Offensichtlich handelt es sich bei den Steuerzeichen um die BOM (Byte Order Mark) Codierung.


    https://de.wikipedia.org/wiki/Byte_Order_Mark


    Aktuelle UTF-Dateien sollen ohne BOM gespeichert werden. Da die BOM-Codierung sich immer am Beginn einer Datei befindet stehen die Steuerzeichen wahrscheinlich in den beiden ausgelagerten Dateien "headerINC.php" und "nav_str_obenINC.php".


    Wenn dein Editor es unterstützt kannst du die beiden Dateien wahrscheinlich einfach als "UTF-8 ohne BOM" abspeichern. Wenn eine Datei als "UTF-8 mit BOM" geöffnet wird ändert der Editor ohne spezielle Anweisung nichts.

    Gruss


    MrMurphy

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!