PHP | include

  • Hallo, hätte da mal ne Frage und hoffe ihr könnt mir weiterhelfen, bin noch ein ziemlicher Anfänger in PHP:

    und zwar habe ich meine ganz normale php-Seite(n), mit der ich durch "include" z.B: eine Shoutbox, Voting und Counter einfüge.. also z.B so:

    PHP
    <?php include("counter/txtcounter.php"); ?>


    bis dahin alles kein Problem.

    Aber jetzt hab ich noch eine zusätzliche Seite, also meine Galerie die in einem anderen Vereichnis liegt als meine anderen Seiten, wenn ich jetzt versuche, das durch include einzufügen, kommt es entweder zu Fehlermeldungen bei der Shotbox, Counter oder es wird gar nicht erst angezeigt. Ich müsste doch lediglich einen Link setzen der zu einem übergeordneten Verzeichnis führt, oder lieg ich damit falsch?
    Bis jetzt hab ich es immer so versucht:

    PHP
    <?php include("../../counter/txtcounter.php"); ?>


    Hoffe ihr könnt mir weiterhelfen!
    Greetz, Klink.[/code]

  • Ich kenne deine Ordnerstruktur nicht, aber ich vermute mal, dass du mit dem zweimaligen "../" aus dem Dokumentenverzeichnis herausgehst.
    Dann kann er es auch nicht finden.
    Mit ../ gehst du EINEN Ordner weiter nach oben.
    Wenn deine Ordner also heißen counter und gallery, dann machst du

    PHP
    <?php include("../counter/txtcounter.php");?>


    Außerdem musst du daran denken, dass du "includen" immer nur am anfang machen kannst, bevor du überhaupt irgend was anderes machst.

    Viele Grüße

    Mir nicht

  • so hab jetzt im Internet was gefunden, das ich also den absoluten Pfad angebe:

    PHP
    <?php include ($_SERVER['DOCUMENT_ROOT'].'/meine_seite/counter/txtcounter.php') ?>

    so funktioniert zwar mein Voting und mein Uhrzeit-Script jedoch kommt beim Counter dann, "Dateizugriff nicht möglich" und die Shoubox wird nicht angezeigt.

    Wenn ich jetzt den Counter herauslösche, wird zwar die Shoutbox angezeigt, aber das Fenster der Shoutbox zeigt dann: "Objekt nicht gefunden, Die angeforderte URL konnte nicht gefunden werden blablabla.."

    An was könnte das liegen, denn der Pfad müsste ja stimmen, wenn mein Voting und die Uhrzeit anzeigt.


    Zitat

    Außerdem musst du daran denken, dass du "includen" immer nur am anfang machen kannst, bevor du überhaupt irgend was anderes machst.

    Was meinst du damit? Hab das nicht verstanden... :?

    Greetz, Klink.

  • Zitat von Klink

    Was meinst du damit? Hab das nicht verstanden... :?

    Greetz, Klink.

    Das musst du auch nicht, das stimmt überhaupt nicht.
    Man kann inphp includen wann und wo man will.
    Am besten gibt du uns mal deinen ganzen Code, da ich mir grad unter der Beschreibung nichts wirkliches vorstellen kann.
    Das mit dem COunter könnte daran liegen, dass sich, wenn du das COunterscprit includierst, auch die Pfade dort ändern.
    Die müsstest du dann anpassen.

    Sprich: im Counterscript müsste man irgendwo festlegen können, welche Datein zum Speichern der Daten verwendet werden.
    Wenn das Script im ordner /counter/ liegt, wird angenommen, dass diese Datein dann im gleichen Ordner, sprich /counter/, liegen.
    Wenn du aber den Counter erst irgendwo anders includierst, beispiel im übergeordnetem Ordner ( /website/counter/) wird auch angenommen, dass sich die Datei im übergeordneten Ordner(/website/) befinden.

    Ich hoffe das war jetzthalbwegs verständlich ;)

  • so, ich zeig mal den code ab includen weil das andere hat ja eigentlich nicht zur sache:

    bei der Uhrzeit, gibts kein problem, das geliche beim Poll bzw. Voting. Wenn ich jedoch das Voting hinter den Counter setze wird es nicht angezeigt...

    Aber normalerweise muss ich doch keinen Pfad ändern vom Counter beispielsweise weil die Daten, die der Counter schreiben muss liegen ja sozusagen in "seinem" Verzeichnis, es wird ja auf der Seite "nur" included.. Oder lieg ich da falsch??

    Die Struktur meiner HP sieht in etwa so aus:

    seite1
    seite2
    seite3 usw.
    Shoutbox-Ordner
    Counter-Ordner
    Poll-Ordner
    Uhrzeit-Script.php-Seite
    Galerie/Ordner/Galerie-Seite <--- um diese seite gehts...

    Hoff, das war halbwegs verständlich :wink:

    Greetz, klink.

  • Mal sehen.
    Setze bitte hinter die include(...) ein ;
    Es müste sonst eigentlich zu Fehlern kommen.

    Schreib mal ganz an den anfang deiner Datei.

    PHP
    <?php error_reporting(E_ALL); ?>

    Dann müssten Fehler im PHP-Code angezeigt werden.

    Doch du musst Daten ändern.
    Der Counter "weiß" zwar, dass er die Daten aus seinem Verzeichnis nehmen soll, aber er geht davon aus, dass das Verzeichnis, in dem er sich grade befindet, "sein" Verzeichnis ist. Somit "denkt" er, er könne die Daten nicht finden.
    Wenn du eine Datei includest, sind Ordner etc. basierend auf der Datei die includiert.
    Ein Beispiel:

    Datei A ist in Verzeichnis a.
    Verzeichnis a hat ein Unterverzeichnis namens b.
    Verzeichnis b hat eine Datei namens B und ein Unterverzeichnis namens c.
    Verzeichnis c hat nur eine Datei namens C.

    Datei A includiert Datei B aus Verzeichnis b [include('b/b.datei')].
    Datei B soll nun Datei C includieren.
    Dann müsste es heissen [include('b/c/c.datei')].

    Du musst mit den Pfaden immer an dem ordner beginnen, an dem die erste Datei liegt.

    Btw. Könnte ein Moderator diesen Thread in die PHP-Ecke verschieben?

  • so hab jetzt mal den Code von dir eingefügt dann kommt folgende Meldung des Counters:

    Liegt aber nicht daran das ich gerade alles lokal laufen lasse oder?

    notice: Use of undefined constant action - assumed 'action' in C:\xampp\htdocs\meine_seite\counter\txtcounter.php on line 35

    Code
    Notice: Undefined index: action in C:\xampp\htdocs\meine_seite\counter\txtcounter.php on line 35
    Fehler! Dateizugriff nicht möglich.


    Und in der txt.counter steht in der Linie35 dieser Befehl:

    Code
    if ($_GET[action] != "show" || !isset($_GET[action]))

    Hab auch das ; gesetzt nach include(..)

    Ist includen nicht sowas wie ein Link? oder irre ich mich da? weil ich kann das nicht ganz nachvollziehen, mein UhrScript und mein Voting-Script funktioniert ja auch..


    Greetz, Marcel

  • ne funktioniert leider auch nicht :(

    langsam bin ich echt verzweifelt :(
    Bin schon am überlegen, das auf meiner Galerie Seite einfach wegzulassen, dann sieht es aber so leer aus und ist nicht mehr einheitlich...