1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

CSS einbinden

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von TheRealDarklord, 18.11.05.

  1. Ich stehe vor einem Rätsel.

    Ich binde meine CSS-Datein immer mit
    PHP:
    <link href="<?php echo $root ?>include/style.css" type="text/css" rel="STYLESHEET">
    in mein HTML innerhalb der index.php ein
    $root wird am Anfang als leer definiert (also $root="")
    auf meinem lokalen PC zu Hause klappt das auch

    nach dem Upload auf meinen Server wird die css-Datei nicht mehr geladen
    ich sehe nur noch grafischen Quark
    im generierten Quelltext steht alles so, wie ich es wünsche
    auch die css-Datei liegt im Unter-Ordner "include" des root-Verzeichnisses

    ich weiß nicht weiter, wieso sie nicht geladen wird
    das kuriose an der Sache:
    wenn ich
    PHP:
    include($root."include/style.css");
    mache, dann wird mir der gesamte Inhalt der Datei angezeigt
    also ist der Pfad zur Datei richtig, die Datei vorhanden

    gebe ich den absoluten Pfad zur css-Datei an, wird sie geladen, aber dann müsste ich immer die scripte umscheiben wenn sie auf den server sollen...

    kann mir jemand helfen?
     
  2. Toddy

    Toddy Wohlschmecker aus Vierlanden

    Dabei seit:
    10.05.04
    Beiträge:
    240
    kannst du den Link zu der Seite im Internet hier veröffentlichen?
     
  3. slartibartfast

    slartibartfast Schöner von Nordhausen

    Dabei seit:
    10.05.05
    Beiträge:
    323
    koennte es vielleicht an den Rechten liegen?

    vielleicht hat der Ordner "include" oder die css-Datei besondere Datei-Rechte? Mit einem FTP-Programm würd ich das mal überprüfen.
    Andere Möglichkeit: eine .htaccess in /include, die Web-Zugriffe verhindert (was für so ein Verzeichnis ja durchaus Sinn macht)

    Was passiert denn, wenn du das css direkt in den root legst?


    Grüße
    slartibartfast
     
  4. hm, stimmt
    im include-Ordner liegt eine .htaccess
    das würde das Phänomen erklären...

    man hab ich ein Brett vorm Kopf :-D
     
  5. slartibartfast

    slartibartfast Schöner von Nordhausen

    Dabei seit:
    10.05.05
    Beiträge:
    323
    tja, manchmal hat man so ein Problem, und sieht nicht die Lösung, die einem vor den Füßen liegt...

    Geht nicht nur dir so.

    Hier zu fragen war eine gute Idee, nur so kann man manche Probleme lösen.
    Indem man jemanden bittet, ihn mit der Nase draufzustoßen.
    Sonst hat man die Lösung nach 2 Tagen und 2 Nächten immer noch nicht...


    Grüße
    slartibartfast
     
  6. stk

    stk Grünapfel

    Dabei seit:
    05.01.04
    Beiträge:
    7.141
    Moin,
    Nein, würde es nicht, weil PHP sich nicht um die .htaccess schert. Der Zugriff eines includes erfolgt über Dateiebene, nicht über HTTP und nur dafür ist die .htaccess zuständig.

    Du solltest viel mehr $root als "/" definieren und nicht als "", ansonsten hast Du relative Pfade. Wenn Die zugreifende Datei dann in einem Unterverzeichnis (sagen wir /download) liegt, würde sie auch in /download/include/ die CSS-Datei suchen, aber nicht finden.

    Gruß Stefan
     
  7. slartibartfast

    slartibartfast Schöner von Nordhausen

    Dabei seit:
    10.05.05
    Beiträge:
    323
    sorry, stk, aber genau das ist das Problem.

    PHP includet die Datei, obwohl die .htaccess da ist, weil es lokale Rechte hat.
    Das hat ja auch funktioniert.

    Aufgerufen werden durch den Browser kann sie aber nicht (mit dem <link...>). .htaccess blockt die Web-Zugriffe.

    nix für ungut :)

    Grüße
    slartibartfast
     
  8. supermario

    supermario Gast

    mal ne andere frage:
    weshalb die css-datei so umständlich verlinken? wegen raubkopierern?
     
  9. slartibartfast

    slartibartfast Schöner von Nordhausen

    Dabei seit:
    10.05.05
    Beiträge:
    323
    nee, das ist eigentlich das normale Vorgehen. Viel CSS direkt in die Seite reinzuschreiben ist unsauber und erhöht den Traffic/Die Ladezeit für die Seite
     
  10. supermario

    supermario Gast

    da hast du mich falsch verstanden...
    ich rede nicht von externen stylesheets, sondern vom verlinken mit php include...
    ich mach das mit
    Code:
    <style type="text/css">
    <!--
    	@import url("stylesheet.css");
    
    -->
            </style>
     
  11. MACRASSI

    MACRASSI Gelbe Schleswiger Reinette

    Dabei seit:
    21.11.04
    Beiträge:
    1.754
    Außerdem wenn man dann mal was in den CSS ändern möchte muss man das ja dann in allen Dateien machen und wenn man die CSS in einer externen Datei hat dann ändert man einfach da und hat alles geändert....

    Gruß Rasmus
     
  12. @mario

    Wieso ist die css-Datei umständlich verlinkt? Habe es doch simpel mit <link href="" ...> gemacht. Das ist noch kürzer als deine Variante ;)

    Und imho kann man css-Dateien nicht effektiv schützen, da diese spätestens nach einem Seitenaufruf im Browsercache liegen und von dort kopiert werden können.
     
  13. supermario

    supermario Gast

    na um die länge der buchstaben will ich mich jetzt nicht streiten ;)
    für mich ist es nur umständlich .php dateien zu erstellen um eine cssdatei zuverlinken... und ich wollte nur wissen, weshalb in php?
     
  14. stk

    stk Grünapfel

    Dabei seit:
    05.01.04
    Beiträge:
    7.141
    Moin,

    wer lesen kann ist klar im Vorteil :oops:. Das ist ja gar kein PHP-include, der da gedacht ist, sondern ein schlichter <link>. @Supermario: Das dürfte auch deine Nachfrage auslösen. Um stets den korrekten Pfad zu haben wird per einfacher PHP-Routine der Präfix im Pfad - hier eben "" (obwohl ich nach wie vor "/" richtiger fände) gesetzt.

    BTW: ob mit <link> oder @import ist dann von belang, wenn man damit bestimmten Browsern die CSS-Anweisung bewußt vorenthalten will. Die beiden Konstrukte werden nämlich je nach Schreibweise höchst unterschiedlich bis gar nicht interpretiert. Fällt in die Rubrik CSS-Hacks.

    Gruß Stefan
     
  15. supermario

    supermario Gast

    is nicht? is doch php in html eingebunden...!? o_O
    verstehe es trotzdem nicht... :eek:
     
  16. stk

    stk Grünapfel

    Dabei seit:
    05.01.04
    Beiträge:
    7.141
    Moin,

    nimm einfach mal alles raus, was PHP ist, dann bleibt über:

    Code:
    <link href="include/style.css" type="text/css" rel="STYLESHEET">
    Also ganz schlicht eine HTML-Anweisung mit der Stylesheets im Headerbereich verlinkt werden.

    Der PHP-Teil

    Code:
    <?php echo $root ?>
    bewirkt lediglich das dem Pfad vorne der Inhalt der Variablen $root angefügt wird. Das ist dann von nöten, wenn auch Dateien, die in einem Unterverzeichnis liegen, zuverlässig das Stylesheet finden sollen, bzw. wenn die Pfade z.B. in Entwicklungsumgebung und echter Webpräsenz unterschiedlich sind.

    Der HTML-Link schlug wegen der .htaccess Beschränkung fehl. Das würde er tun, unabhängig davon ob der PHP-Teil dazu kommt oder nicht. Da PHP per "echo" nur eine Ausgabe liefert, die den HTML-Teil erweitert ist PHP an der Ecke unerheblich. Was mich schlicht aus dem Tritt gebracht hat, war das "include" im Pfadnamen zum Stylesheet. Grob hingesehen fängt's mit "<?php" an und geht mit "include" weiter. Iss aber nicht :p.

    Anders bei der zweiten Variante wo wirklich ein PHP include vorliegt, das aber nur zum Debuggen gedacht war. Dort wird auf Dateiebene, nicht über HTTP auf das Stylesheet zugegriffen und daher funktionierts.

    Gruß Stefan
     
  17. supermario

    supermario Gast

    danke :)
    du gibts bestimmt einen guten lehrer ab...
     
  18. stk

    stk Grünapfel

    Dabei seit:
    05.01.04
    Beiträge:
    7.141
    Moin,

    sogar 'nen Missionar ;)

    Gruß Stefan
     

Diese Seite empfehlen