Flo: Absolute Pfade wegen Breadcrumbs und CSS-Layout

Hallo,
habe folgendes Problem:

Fuer eine Breadcrumbs-Navigation muss ich ja meine einzelnen Seiten in verschiedene Ordner Packen.
Also mal folgende Ordnerstruktur angenommen:
/bilder/01.01.2009/uebersicht.html
/breadcrumbs.php
/stylesheet.css
/index.php

Jetzt binde ich ja meine CSS mit <link rel="stylesheet" type="text/css" href="stylesheet.css"> ein
Muss ich den Link dann fuer jede Seite anpassen? Also fuer die uebersicht.html dann <... href=../../stylesheet.css">?
Geht das nicht irgendwie absolut? nur href="stzkesheet.css" funktioniert ja nicht..
sonst muesste ich ja auch immer meine ganze navigation etc anpassen...

  1. Hi,

    Fuer eine Breadcrumbs-Navigation muss ich ja meine einzelnen Seiten in verschiedene Ordner Packen.

    Nein. Nur dann, wenn Du die breadcrumbs aus dem Pfad ermittelst.

    Jetzt binde ich ja meine CSS mit <link rel="stylesheet" type="text/css" href="stylesheet.css"> ein

    Warum? Warum nicht wie folgt?

    <link rel="stylesheet" type="text/css" href="/stylesheet.css">

    Muss ich den Link dann fuer jede Seite anpassen? Also fuer die uebersicht.html dann <... href=../../stylesheet.css">?

    s.o., nein.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. »» Fuer eine Breadcrumbs-Navigation muss ich ja meine einzelnen Seiten in verschiedene Ordner Packen.

      Nein. Nur dann, wenn Du die breadcrumbs aus dem Pfad ermittelst.

      Genau das mache ich.

      »» Jetzt binde ich ja meine CSS mit <link rel="stylesheet" type="text/css" href="stylesheet.css"> ein

      Warum? Warum nicht wie folgt?

      <link rel="stylesheet" type="text/css" href="/stylesheet.css">

      Das funktioniert bei mir irgendwie nicht..
      Ich binde ja auch meine breadcrumbs.php ein: <? php include ("/breadcrumbs.php"); ?>
      direkt nach dem befehl der brwoser dann ab "warning, failed to open stream" weil er den unter /bilder/01.01.2009/breadcrumbs.php sucht und nicht unter /breadcrumbs.php

      1. Hi,

        »» <link rel="stylesheet" type="text/css" href="/stylesheet.css">
        »»
        Das funktioniert bei mir irgendwie nicht..

        Dann machst Du etwas falsch.

        Ich binde ja auch meine breadcrumbs.php ein: <? php include ("/breadcrumbs.php"); ?>

        Das eine hat mit dem anderen NICHTS zu tun. Beim Link-Element findet ein Zugriff durch den Browser über http statt, beim Include ein Zugriff durch den PHP-Interpreter über das Filesystem des Servers.

        direkt nach dem befehl der brwoser dann ab "warning, failed to open stream" weil er den unter /bilder/01.01.2009/breadcrumbs.php sucht und nicht unter /breadcrumbs.php

        Wenn der Dateipfad mit / beginnt, müßte eigentlich im Filesystem-Root danach gesucht werden.

        Ggf. ist aber auch der PHP-Include-Path falsch gesetzt.

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        O o ostern ...
        Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
        1. Also ich hab:
          ...
          <head>
          <link rel="stzlesheet" type="text/css" href="stylesheet.css">
          <script src='suckerfish.js'></script>
          </head>
          <body>
          <? php include ("breadcrumbs.php"); ?>
          <div> <? include ("navigation.php"); ?> </div>
          ...

          breadcrumbs.php, navigation.php, suckerfish.js und stylesheet.css liegen alle im Wurzelverzeichnis.
          wenn ich im Wurzelverzeichnis einen neuen Ordner mache und dort eine seite.html mit dem leichen code, geht es nicht. Auch wenn ich vor alles jeweils ein / setze..
          Wo ist der Fehler?? Ich find ihn nicht...

          1. Hi,

            <head>
            <link rel="stzlesheet" type="text/css" href="stylesheet.css">
            <script src='suckerfish.js'></script>
            </head>
            <body>
            <? php include ("breadcrumbs.php"); ?>
            <div> <? include ("navigation.php"); ?> </div>
            ...

            breadcrumbs.php, navigation.php, suckerfish.js und stylesheet.css liegen alle im Wurzelverzeichnis.
            wenn ich im Wurzelverzeichnis einen neuen Ordner mache und dort eine seite.html mit dem leichen code, geht es nicht. Auch wenn ich vor alles jeweils ein / setze..
            Wo ist der Fehler?? Ich find ihn nicht...

            Liest Du eigentlich, was man Dir schreibt?
            Ich hab Dir doch grade schon erklärt, daß bei http-Zugriff der Slash davor kann.
            Bei Filezugriff (include) muß ggf. der Include-Path angepaßt werden.

            cu,
            Andreas

            --
            Warum nennt sich Andreas hier MudGuard?
            O o ostern ...
            Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
            1. Liest Du eigentlich, was man Dir schreibt?

              schon, dachte nur ich schreib mal nochmal deutlich meine Datei...

              Ich hab Dir doch grade schon erklärt, daß bei http-Zugriff der Slash davor kann.
              Bei Filezugriff (include) muß ggf. der Include-Path angepaßt werden.

              Wie muss ich den include-Befehl anpassen? Kapier ich nicht...
              Hab versucht ein / vor stylesheet zu machen - klappt aber nicht. wenn ich ../ davor schreibe tut es aber..

              Glaub ich steh gerade ziemlich aufm Schlauch...

              1. Mahlzeit Flo,

                »» Bei Filezugriff (include) muß ggf. der Include-Path angepaßt werden.
                Wie muss ich den include-Befehl anpassen? Kapier ich nicht...

                Nicht den include()-Befehl, sondern den include_path.

                Hab versucht ein / vor stylesheet zu machen - klappt aber nicht. wenn ich ../ davor schreibe tut es aber..

                Dann befindet sich Deine Stylesheet-Datei definitiv NICHT im DocumentRoot. Wo liegt sie also?

                Glaub ich steh gerade ziemlich aufm Schlauch...

                Wir auch, solange Du nur so spärliche Informationen lieferst. Und das auch nur, wenn sie Dir einzeln aus der Nase zieht.

                Hast Du mal ein Online-Beispiel? Oder alternativ mal wirklich aussagekräftige Code-Beispiele inkl. genauen Pfadangaben und detaillierten Fehlermeldungen oder Problembeschreibungen?

                Außer Dir kann niemand auf Deinen Bildschirm schauen - also musst Du Deinen Lesern schon beschreiben, was dort zu sehen ist.

                MfG,
                EKKi

                --
                sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                1. Hi,

                  Außer Dir kann niemand auf Deinen Bildschirm schauen - also musst Du Deinen Lesern schon beschreiben, was dort zu sehen ist.

                  Vorsicht, gleich kommt eine Beschreibung wie diese:

                  Die Kaffeetasse, der Aschenbecher, 3 Schlümpfe und 17 Überraschungseier-Figuren ;-)

                  (obwohl das dank Flachbildschirmen immer mehr abnimmt mit den Kaffeetassen auf den Bildschirmen)

                  cu,
                  Andreas

                  --
                  Warum nennt sich Andreas hier MudGuard?
                  O o ostern ...
                  Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
                2. Onlinebeispiel hab ich leider keins.

                  Also ich habe lokal einen Apache2. den spreche ich ueber http://127.0.0.1 bzw. http://localhost im Brwoser an. Dabei zeigt mir der Browser dann den Inhalt des Ordners /var/www/
                  Verzeichnisstruktur:
                  /var/www/stylesheet.css
                  /var/www/scwlib_breadcrumbs.php
                  /var/www/index.php
                  /var/www/ordner/test.php

                  in index.php funktioniert alles ohne probleme.
                  hier mal der code fuer test.php

                    
                  <html>  
                  <head>  
                  <link rel="stylesheet" type="text/css" href="http://127.0.0.1/stylesheet.css">  
                  </head>  
                  <body>  
                  <div id="banner">hier kommt ein Banner rein</div>  
                    
                  	<?php  
                  	 include ("http://127.0.0.1/scwlib_breadcrumbs.php");  
                  	 $breadcrumbs = new SCWlib_Breadcrumbs;  
                  	 $breadcrumbs->printBreadcrumbs();  
                    
                  <div id="nav"> <? include ("http://127.0.0.1/navigation.php"); ?> </div>  
                  </body>  
                  </html>  
                  
                  

                  das funktioniert nun soweit - ausser dien implementierung der scwlib_breadcrumbs.php

                  hier jetzt noch die scwlib_breadcrumbs.php:

                  <?php  
                  // +---------------------+  
                  // | SCWlib: Breadcrumbs |  
                  // +---------------------+------------------+---------------+  
                  // | scwlib_breadcrumbs.php                 | Version 0.2.7 |  
                  // +----------------------------------------+---------------+  
                  // | Copyright 2006 by Tim Gerundt <lgm@lgmsworld.de>       |  
                  // |                                                        |  
                  // | Released under the "GNU Lesser General Public License" |  
                  // +--------------------------------------------------------+  
                    
                  /**  
                   * Klasse zum Erzeugen einer Brotkrumen-Navigation (Breadcrumb-Navigation).  
                   */  
                  class SCWlib_Breadcrumbs {  
                    var $_putintodivision, $_divisioncssclass, $_divisioncssid;  
                    var $_putintoparagraph, $_paragraphcssclass, $_paragraphcssid;  
                    var $_description;  
                    var $_homename, $_homepath;  
                    var $_separator;  
                    var $_replaceunderlines;  
                    var $_ucfirst, $_ucwords;  
                    var $_removeextension;  
                    var $_readtitlefrompage, $_titlepattern;  
                    var $_replacements, $_usereplacements;  
                    
                    /**  
                     * Konstruktor  
                     */  
                    function SCWlib_Breadcrumbs() {  
                      $this->_putintodivision = false;  
                      $this->_divisioncssclass = '';  
                      $this->_divisioncssid = '';  
                      $this->_putintoparagraph = false;  
                      $this->_paragraphcssclass = '';  
                      $this->_paragraphcssid = '';  
                      $this->_description = '&raquo; ';  
                      $this->_homename = 'Home';  
                      $this->_homepath = '/';  
                      $this->_separator = ' &raquo; ';  
                      $this->_replaceunderlines = true;  
                      $this->_ucfirst = true;  
                      $this->_ucwords = false;  
                      $this->_removeextension = true;  
                      $this->_readtitlefrompage = false;  
                      $this->_titlepattern = '<title>(.*?)<\/title>';  
                      $this->_replacements = Array();  
                      $this->_usereplacements = true;  
                    }  
                    
                    /**  
                     * Legt fest, ob die Brotkrumen-Navigation in einen Bereich <div> gepackt werden soll.  
                     * Ausserdem kann man eine optionale CSS-Klasse und/oder CSS-ID angeben.  
                     */  
                    function setPutIntoDivision($value, $cssclass = '', $cssid = '') {  
                      $this->_putintodivision = $value;  
                      $this->_divisioncssclass = $cssclass;  
                      $this->_divisioncssid = $cssid;  
                    }  
                    
                    /**  
                     * Legt fest, ob die Brotkrumen-Navigation in einen Absatz <p> gepackt werden soll.  
                     * Ausserdem kann man eine optionale CSS-Klasse und/oder CSS-ID angeben.  
                     */  
                    function setPutIntoParagraph($value, $cssclass = '', $cssid = '') {  
                      $this->_putintoparagraph = $value;  
                      $this->_paragraphcssclass = $cssclass;  
                      $this->_paragraphcssid = $cssid;  
                    }  
                    
                    /**  
                     * Legt die Beschreibung vor der Brotkrumen-Navigation fest.  
                     */  
                    function setDescription($description) {  
                      $this->_description = $description;  
                    }  
                    
                    /**  
                     * Legt den Anzeigenamen der Startseite fest.  
                     */  
                    function setHomeName($homename) {  
                      $this->_homename = $homename;  
                    }  
                    
                    /**  
                     * Legt den Pfad der Startseite fest.  
                     */  
                    function setHomePath($homepath) {  
                      $this->_homepath = $homepath;  
                    }  
                    
                    /**  
                     * Legt das Trennzeichen der Brotkrumen fest.  
                     */  
                    function setSeparator($separator) {  
                      $this->_separator = $separator;  
                    }  
                    
                    /**  
                     * Legt fest, ob der Unterstrich "_" in den Brotkrumen ersetzt werden soll.  
                     */  
                    function setReplaceUnderlines($value) {  
                      $this->_replaceunderlines = $value;  
                    }  
                    
                    /**  
                     * Legt fest, ob das erste Zeichen jedes Brotkrumen GROSS geschrieben werden soll.  
                     */  
                    function setUppercaseFirst($value) {  
                      $this->_ucfirst = $value;  
                    }  
                    
                    /**  
                     * Legt fest, ob jedes erstes Zeichen eines Wortes innerhalb eines Brotkrumen GROSS geschrieben werden soll.  
                     */  
                    function setUppercaseWords($value) {  
                      $this->_ucwords = $value;  
                    }  
                    
                    /**  
                     * Legt fest, ob die Dateierweiterung entfernt werden soll.  
                     */  
                    function setRemoveExtension($value) {  
                      $this->_removeextension = $value;  
                    }  
                    
                    /**  
                     * Legt fest, ob der Titel aus der Seite gelesen werden soll.  
                     */  
                    function setReadTitleFromPage($value) {  
                      $this->_readtitlefrompage = $value;  
                    }  
                    
                    /**  
                     * Legt das Suchmuster (als Perl-kompatibler regul�rer Ausdruck) f�r den Titel fest.  
                     */  
                    function setTitlePattern($titlepattern) {  
                      $this->_titlepattern = $titlepattern;  
                    }  
                    
                    /**  
                     * L�scht die Ersetzungen.  
                     */  
                    function clearReplacements() {  
                      $this->_replacements = Array();  
                    }  
                    
                    /**  
                     * F�gt eine Ersetzungen hinzu.  
                     */  
                    function addReplacement($search, $replace) {  
                      $this->_replacements[$search] = $replace;  
                    }  
                    
                    /**  
                     * Legt fest, ob Ersetzungen verwendet werden sollen.  
                     */  
                    function setUseReplacements($value) {  
                      $this->_usereplacements = $value;  
                    }  
                    
                    /**  
                     * Liefert die Brotkrumen-Navigation zur�ck.  
                     */  
                    function getBreadcrumbs() {  
                      $html = '';  
                    
                      if ($this->_putintodivision == true) { //Wenn die Brotkrumen-Navigation in einen Bereich <div> gepackt werden soll...  
                        $html .= '<div';  
                        if ($this->_divisioncssid != '') { //Wenn eine CSS-ID angegeben wurde...  
                          $html .= ' id="' . $this->_paragraphcssid . '"';  
                        }  
                        if ($this->_divisioncssclass != '') { //Wenn eine CSS-Klasse angegeben wurde...  
                          $html .= ' class="' . $this->_paragraphcssclass . '"';  
                        }  
                        $html .= '>';  
                      }  
                    
                      if ($this->_putintoparagraph == true) { //Wenn die Brotkrumen-Navigation in einen Absatz <p> gepackt werden soll...  
                        $html .= '<p';  
                        if ($this->_paragraphcssid != '') { //Wenn eine CSS-ID angegeben wurde...  
                          $html .= ' id="' . $this->_paragraphcssid . '"';  
                        }  
                        if ($this->_paragraphcssclass != '') { //Wenn eine CSS-Klasse angegeben wurde...  
                          $html .= ' class="' . $this->_paragraphcssclass . '"';  
                        }  
                        $html .= '>';  
                      }  
                    
                      $html .= $this->_description;  
                    
                      $path = $this->_homepath;  
                      $html .= '<a href="' . $path . '">' . $this->_homename . '</a>';  
                    
                      $parts = explode('/', $_SERVER['PHP_SELF']);  
                      $partscount = count($parts);  
                      for($i = 1; $i < ($partscount - 1); $i++) { //F�r alle Brotkrumen...  
                        $path .= $parts[$i] . '/';  
                    
                        $title = $parts[$i];  
                    
                        if ($this->_usereplacements == true) { //Wenn "Ersetzungen" verwendet werden sollen...  
                          reset($this->_replacements);  
                          while (list($search, $replace) = each($this->_replacements)) { //F�r alle Ersetzungen...  
                            $title = str_replace($search, $replace, $title);  
                          }  
                        }  
                    
                        if ($this->_replaceunderlines == true) { //Wenn der Unterstrich "_" in den Brotkrumen ersetzt werden soll...  
                          $title = str_replace('_', ' ', $title);  
                        }  
                    
                        if ($this->_ucfirst == true) { //Wenn das erste Zeichen jedes Brotkrumen GROSS geschrieben werden soll...  
                          $title = ucfirst($title);  
                        }  
                    
                        if ($this->_ucwords == true) { //Wenn jedes erstes Zeichen eines Wortes innerhalb eines Brotkrumen GROSS geschrieben werden soll...  
                          $title = ucwords($title);  
                        }  
                    
                        $html .= $this->_separator . '<a href="' . $path . '">' . $title . '</a>';  
                      }  
                    
                      $title = '';  
                      if ($this->_readtitlefrompage == true) { //Wenn der Titel aus der Seite gelesen werden soll...  
                        $lines = @file($parts[$partscount-1]);  
                        if (is_array($lines) == true) { //Wenn die Seite gelesen werden konnte...  
                          foreach($lines as $line) { //F�r alle Zeilen...  
                            preg_match('/' . $this->_titlepattern . '/i', $line, $found);  
                            if ($found[1] != '') { //Wenn der Titel gefunden wurde...  
                              $title = $found[1];  
                              break;  
                            }  
                          }  
                        }  
                      }  
                    
                      if ($title == '') { //Wenn KEIN Titel ermittelt wurde...  
                        $title = $parts[$partscount-1];  
                    
                        if ($this->_usereplacements == true) { //Wenn "Ersetzungen" verwendet werden sollen...  
                          reset($this->_replacements);  
                          while (list($search, $replace) = each($this->_replacements)) { //F�r alle Ersetzungen...  
                            $title = str_replace($search, $replace, $title);  
                          }  
                        }  
                    
                        if ($this->_removeextension == true) { //Wenn die Dateierweiterung entfernt werden soll...  
                          $title = substr($title, 0, strrpos($title, '.'));  
                        }  
                    
                        if ($this->_replaceunderlines == true) { //Wenn der Unterstrich "_" in den Brotkrumen ersetzt werden soll...  
                          $title = str_replace('_', ' ', $title);  
                        }  
                    
                        if ($this->_ucfirst == true) { //Wenn das erste Zeichen jedes Brotkrumen GROSS geschrieben werden soll...  
                          $title = ucfirst($title);  
                        }  
                    
                        if ($this->_ucwords == true) { //Wenn jedes erstes Zeichen eines Wortes innerhalb eines Brotkrumen GROSS geschrieben werden soll...  
                          $title = ucwords($title);  
                        }  
                      }  
                    
                      $html .= $this->_separator . '<b>' . $title . '</b>';  
                    
                      if ($this->_putintoparagraph == true) { //Wenn die Brotkrumen-Navigation in einen Absatz <p> gepackt werden soll...  
                        $html .= '</p>';  
                      }  
                    
                      if ($this->_putintodivision == true) { //Wenn die Brotkrumen-Navigation in einen Bereich <div> gepackt werden soll...  
                        $html .= '</div>';  
                      }  
                    
                      return $html;  
                    }  
                    
                    /**  
                     * Gibt die Brotkrumen-Navigation aus.  
                     */  
                    function printBreadcrumbs() {  
                      print($this->getBreadcrumbs());  
                    }  
                  }  
                  ?>  
                  
                  
                  1. Mahlzeit Flo,

                    Dabei zeigt mir der Browser dann den Inhalt des Ordners /var/www/

                    Das heißt, im Apache ist als DocumentRoot /var/www/ konfiguriert.

                    Verzeichnisstruktur:
                    /var/www/stylesheet.css
                    /var/www/scwlib_breadcrumbs.php
                    /var/www/index.php
                    /var/www/ordner/test.php

                    <link rel="stylesheet" type="text/css" href="http://127.0.0.1/stylesheet.css">

                    Was spricht gegen "/stylesheet.css"?

                    <?php
                    include ("http://127.0.0.1/scwlib_breadcrumbs.php");

                    Das ist im Normalfall keine gute Idee. Informiere Dich zum Thema allow_url_fopen.

                    Du solltest insbesondere lokale Dateien NUR über lokale Includes einbinden. Dabei bedeutet "/scwlib_breadcrumbs.php" natürlich auch, dass diese Datei direkt im / des Servers gesucht wird - was nicht unbedingt klappen muss ... das zeigt Dir ja auch die entsprechende Fehlermeldung:

                    Warning: include(/breadcrumbs.php)[function.include]: failed to open stream: No such file or directory in /var/www/ordner/test.php on line 18
                    Warning: include() [function.include]: Failed opening 'breadscrumbs.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/ordner/test.php on line 18

                    Liest und verstehst Du Fehlermeldungen eigentlich?

                    Wo lokale Dateien zum Einbinden gesucht werden, kannst Du über die Direktive include_path festlegen.

                    hier jetzt noch die scwlib_breadcrumbs.php:

                    Du interessiert hier nicht. Bitte poste nur RELEVANTEN Code!

                    MfG,
                    EKKi

                    --
                    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                    1. Hi,

                      Was spricht gegen "/stylesheet.css"?

                      Die Tatsache, daß Flo solche Hinweise gezielt ignoriert.

                      Wo lokale Dateien zum Einbinden gesucht werden, kannst Du über die Direktive [> include_path <] festlegen.

                      Auch das hab ich Flo schon vor Stunden gesagt.

                      Liest und verstehst Du Fehlermeldungen eigentlich?

                      Wahrscheinlich genauso aufmerksam wie die Antworten hier.

                      cu,
                      Andreas

                      --
                      Warum nennt sich Andreas hier MudGuard?
                      O o ostern ...
                      Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
                    2. Was spricht gegen "/stylesheet.css"?

                      ok, so funktioniert es - aber nur bei der css. Die php-Seiten kann ich so nicht einbinden..

                      »» <?php
                      »» include ("http://127.0.0.1/scwlib_breadcrumbs.php");

                      Das ist im Normalfall keine gute Idee. Informiere Dich zum Thema allow_url_fopen.

                      Du solltest insbesondere lokale Dateien NUR über lokale Includes einbinden. Dabei bedeutet "/scwlib_breadcrumbs.php" natürlich auch, dass diese Datei direkt im / des Servers gesucht wird - was nicht unbedingt klappen muss ... das zeigt Dir ja auch die entsprechende Fehlermeldung:

                      »» Warning: include(/breadcrumbs.php)[function.include]: failed to open stream: No such file or directory in /var/www/ordner/test.php on line 18
                      »» Warning: include() [function.include]: Failed opening 'breadscrumbs.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/ordner/test.php on line 18

                      Liest und verstehst Du Fehlermeldungen eigentlich?

                      Ja, ich verstehe dass er die Datei nicht findet und es ist ja auch klar weil die unter /var/www/ liegt und nicht unter /var/www/ordner liegt.

                      Wo lokale Dateien zum Einbinden gesucht werden, kannst Du über die Direktive include_path festlegen.

                      habe in die php.ini jetzt folgendes eingetragen:
                      include_path=".:/var/www"
                      aber ich bekomm trotzdem den selben fehler, nur eben diesmal ohne das .:/usr/share/php sondern eben mit .:/var/www

                      Ich verstehs einfach nicht - Entschuldigung...

                      Eine einfache, verstaendliche Anleitung waere hilfreicher als Posts à là MudGuard. Es kann nicht jeder so superschlau und toll sein wie du!!

                      1. »» Was spricht gegen "/stylesheet.css"?
                        ok, so funktioniert es - aber nur bei der css. Die php-Seiten kann ich so nicht einbinden..

                        Warum das so ist, wurde dir sicher schon etwa 8x gesagt.

                        Ich verstehs einfach nicht - Entschuldigung...

                        Prüfe wo das File _wirklich_ liegt und wo das Wurzelverzeichnis deines Webs zu finden ist - rate nicht, das kostet nur sinnlos Zeit. Apache stellt dir dazu sogar eine Umgebungsvariable[1] zur Verfügung, die du mit PHP lesen kannst.

                        Dass ein vhost direkt unterhalb von /var/www ohne Unterverzeichnise herumgammelt, halte ich persönlich für ungewöhnlich (bitte klärt mich auf) - normalerweise gibts eine Struktur die etwa so aussieht:

                        /var/www/htdocs/vhost1
                        /var/www/htdocs/vhost2
                        /var/www/htdocs/vhost3

                        oder zumindest sowas

                        /var/www/vhost1
                        /var/www/vhost2
                        /var/www/vhost3

                        Tipp: Die Umgebungsvariable heisst DOCUMENT_ROOT

                      2. Mahlzeit Flo,

                        »» Was spricht gegen "/stylesheet.css"?
                        ok, so funktioniert es - aber nur bei der css. Die php-Seiten kann ich so nicht einbinden..

                        Natürlich nicht. Ich habe immer deutlicher das Gefühl, dass Du Antworten auf Deine Beiträge entweder überhaupt gar nicht liest oder Dir nicht die Mühe machst, die Antworten zu verstehen. Warum nicht? Die Leute machen sich doch auch die Mühe, Dir zu antworten ...

                        »» Liest und verstehst Du Fehlermeldungen eigentlich?
                        Ja, ich verstehe dass er die Datei nicht findet und es ist ja auch klar weil die unter /var/www/ liegt und nicht unter /var/www/ordner liegt.

                        Genau. Beim Einbinden von PHP-Skripten mittels include() musst Du immer relativ zum aktuellen DOCUMENT_ROOT arbeiten. Das findest Du z.B. im superglobalen Array $_SERVER. Wenn Du von dem dort angegebenen Ordner ausgehend die Pfade der einzubindenden Dateien relativ aufbaust, sollte es eigentlich funktionieren.

                        Ich verstehs einfach nicht - Entschuldigung...

                        Das macht nichts. Was genau verstehst Du nicht? Das hier ist kein PHP-Kurs, es wird ausdrücklich davon ausgegangen (das steht auch so in der Charta!), dass Grundkenntnisse vorhanden sind und dass der Fragende sich bemüht.

                        Du wurdest mehrfach auf den Unterschied hingewiesen - hast aber bisher nicht deutlich erkennen lassen, dass Du Dich darum gekümmert hast, das fehlende Wissen nachzuholen.

                        Eine einfache, verstaendliche Anleitung waere hilfreicher als Posts à là MudGuard. Es kann nicht jeder so superschlau und toll sein wie du!!

                        Ich möchte Dich bitte, Dich ein wenig zurückzuhalten. Wenn Du etwas nicht verstehst, dann ist es hauptsächlich Dein Job, die noch nicht vorhandenen Kenntnisse nachzuholen. Auf (konkrete) Fragen wird Dir hier jeder gern antworten (wenn denn zu sehen ist, dass Du Dich bemühst) - aber wenn Du immer wieder die selben Sachen fragst, die gleichen Fehler machst oder auf andere Weise deutlich wird, dass Du vom Verständnis her nicht weiter bist als bei Deinem Eröffnungsbeitrag dieses Threads, dann verliert irgendwann jeder die Lust, hier unentgeltlich zu helfen ...

                        MfG,
                        EKKi

                        --
                        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
          2. Mahlzeit Flo,

            <link rel="stzlesheet" type="text/css" href="stylesheet.css">

            Ich hoffe doch, eher "stylesheet"?

            <script src='suckerfish.js'></script>
            </head>
            <body>
            <? php include ("breadcrumbs.php"); ?>
            <div> <? include ("navigation.php"); ?> </div>

            breadcrumbs.php, navigation.php, suckerfish.js und stylesheet.css liegen alle im Wurzelverzeichnis.

            Dann sollte eine beliebige Datei, die obigen Inhalt hat und im gleichen Verzeichnis liegt, problemlos "funktionieren".

            wenn ich im Wurzelverzeichnis einen neuen Ordner mache und dort eine seite.html mit dem leichen code, geht es nicht.

            1. "Geht nicht" geht nicht.

            2. Natürlich kann das nicht funktionieren. Weder der PHP-Interpreter findet im aktuellen Verzeichnis die Dateien "breadcrumbs.php" und "navigation.php", noch bekommt der Browser die Dateien "stylesheet.css" und "suckerfish.js" vom Webserver zugeschickt. Ganz einfach, weil sie sich nicht dort befinden.

            Wie MudGuard bereits schrieb, solltest Du Dir über den Unterschied zwischen serverseitig-internem Zugriff auf Dateien durch z.B. PHP und dem Abruf von Dateien mittels HTTP durch irgendeinen Client klar sein.

            Auch wenn ich vor alles jeweils ein / setze..

            Vor alles? Was "geht" dann nicht? Was "geht" dann trotzdem?

            Wo ist der Fehler?? Ich find ihn nicht...

            Der Fehler liegt - immer noch - in Deiner mangelnden Problembeschreibung.

            MfG,
            EKKi

            --
            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
            1. »» <link rel="stzlesheet" type="text/css" href="stylesheet.css">

              Ich hoffe doch, eher "stylesheet"?

              jupp, vertippt. habe ne englische tastatur ;)

              »» <script src='suckerfish.js'></script>
              »» </head>
              »» <body>
              »» <? php include ("breadcrumbs.php"); ?>
              »» <div> <? include ("navigation.php"); ?> </div>

              »» breadcrumbs.php, navigation.php, suckerfish.js und stylesheet.css liegen alle im Wurzelverzeichnis.

              Dann sollte eine beliebige Datei, die obigen Inhalt hat und im gleichen Verzeichnis liegt, problemlos "funktionieren".

              das tut es auch

              »» Auch wenn ich vor alles jeweils ein / setze..

              Vor alles? Was "geht" dann nicht? Was "geht" dann trotzdem?

              der firefox zeigt:
              Warning: include(/breadcrumbs.php)[function.include]: failed to open stream: No such file or directory in /var/www/ordner/test.php on line 18
              Warning: include() [function.include]: Failed opening 'breadscrumbs.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/ordner/test.php on line 18
              Fatal error: Class 'Breadcrumbs' not found in /var/www/ordner/test.php on line 19

              also "geht" nichts weil die Datei im Verzeichnis "ordner" gesucht wird anstadt im Wurzelverzeichnis..

              »» Wo ist der Fehler?? Ich find ihn nicht...

              Der Fehler liegt - immer noch - in Deiner mangelnden Problembeschreibung.

              Dann versuch is es nochmal:
              gibt es eine Moeglichkeit das Wurzelverzeichnis direkt anzusprechen ohne ../../../ zu verwenden? Also unabhaening von der Verzeichnistiefe immer direkt auf die oberste ebene zuzugreifen?
              Bsp.:
              /stylesheet.css
              /ordner1/test1.html
              /ordner1/ordner2/test2.html

              wenn ich hier stylesheet.css in test2.html einbinden will brauch ich:
              <link rel="stylesheet" type="text/css" href=../../stylesheet.css">
              will ich die selbe datei in test1.html einbinden brauch ich:
              <link rel="stylesheet" type="text/css" href=../stylesheet.css">

              gibt es keine moeglichkeit dass ich in beide html-dateien den gleichen link schreibe (z.B. /stylesheet.css - das geht nicht mit /, ich weiss, aber vllt gibts ja was anderes)..

              hoff jetzt ist es endlich klar was ich erreichen moechte..

              1. gibt es eine Moeglichkeit das Wurzelverzeichnis direkt anzusprechen ohne ../../../ zu verwenden?

                Ja, mit /

                Aber wie dir schon Mehrfach gesagt wurde, musst du zwischen Wurzelverzeichnis des Betriebsysstems und Wurzelverzeichnis des Virtal-Hosts (also das Wurzelverzeichnis deiner Webseite) unterscheiden.

              2. Mahlzeit Flo,

                gibt es eine Moeglichkeit das Wurzelverzeichnis direkt anzusprechen ohne ../../../ zu verwenden?

                Ja. Es kommt dabei allerdings darauf an, welches Wurzelverzeichnis Du meinst. Das des gesamten Systems (das wäre relevant für den serverseitig-lokalen Dateizugriff z.B. mit PHP) oder das der Webpräsenz/Domain (das wäre relevant für HTTP-Zugriff z.B. durch den Browser).

                Ist Dir der Unterschied mittlerweile klar?

                Wenn nicht, informiere Dich.

                /stylesheet.css
                /ordner1/test1.html
                /ordner1/ordner2/test2.html

                Ja. Und zwar genau so. Wenn es sich um den Zugriff per HTTP handelt.

                Dir fehlen offenbar Grundlagen zum Thema "<http://de.selfhtml.org/html/verweise/projektintern.htm#dateien@title=Referenzieren in HTML>.

                MfG,
                EKKi

                --
                sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|