PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [PHP] include() Problem


StefanRHRO
16.09.2003, 16:32
Hallo ich habe da ein kleines Problem und zwar, habe ich vor meine Seiten mit zwei Layoutdateien zu basteln, einmal mit "oben.inc" und einmal mit "unten.inc"
so nun bastel ich das da ein, bekomme aber eine Fehlermeldung, die halt aussagt, dass er nicht includen kann, von "../lay/oben.inc". Und außerdem ist ne Aussage include_path aussage mitdrin c:\php4\pear, damit kann ich gar nichts anfangen, kann mir da jemand helfen? Liegt das vielleicht an meiner PHP Konfiguration?

Hier nochmal der Code zum includen:


PHP:--------------------------------------------------------------------------------

<?php
//oben auslesen
include("../lay/oben.inc");
Test
include ("../lay/unten.inc");
?>

--------------------------------------------------------------------------------


PS: Sorry, dass ich keinen Fehlercode mitschreibe, aber ich bin in nem I-Net Kaffe und habe den nicht vorliegen.

Atomic
16.09.2003, 20:37
Stimmt der Code würde alles soffort klar machen.. nungut..

*.inc Dateien werden in aller Regel durch den PHP Interpreter wie auch die Dateien mit *.php Endung >geparst<.
Od das nun so ist bei dir oder nicht es ist in jedem Fall schlecht weil du nicht nur nicht sicher gehen kannst das auf dem Server diese Dateien geparst werden sondern weil in aller Regel diese Dateien heruntergeladen werden können (inklusive PHP Code).
Von dem her mach es wie die Profis: unten.inc.php anstatt unten.inc
-> Das ist auch eine hilfreiche Schreibweise um Dateiunterschiede und Einsatzzwecke zu unterscheiden.
Ich benutze beispielsweise: main.vars.php (Datei nur mit PHP Variabeln)

Zurück zum Problem und den möglichen Ursachen:
Pear ist eine Art internationales Projekt wie PHP nur das es dort um in PHP geschriebener Code geht (PHP Klassen):
Dort kann man seine Klassen der Pear Group schicken auf das diese event. deinen Code adden und man kann sich andere Klassen saugen.
Zu den ganzen Klasssen gibt es auch eine Doku.
Fazit: bei www.php.de gehts um die Extensions bei pear.php.de um die Klassen
Pear ist seit es nicht mehr Beta ist bei PHP im Standart Paket vorhanden.
Aber wichtig: Es ist nur der "Installer" vorhanden mit dem man die anderen jederzeit anfordern kann.
Insofern möglich das bei deiner PHP Config der Standart inkludier-Verzeichnisspfad auf das Pear Verzeichniss innerhalb deines PHP Ordnerzweiges verweist.
Früher war die Einstellung einfach leer.
(Das nur so mal zum Verständniss.)

Jetzt stellt sich natürlich die Frage warum er dort sucht:
Weil er deine inklude Files nicht gefunden hat?
Keine Ahnung.

Zwischenfragen:
Du benutzt schon den Standart include() Befehl?
Und du hast auch nicht sowas geschrieben " include($inc_path."unten.inc")" und dabei vergessen das die Definition für $inc_path erst weiter unten steht?

Da ich dir Aufgrund der Tatsache das eigentlich keine Probs auftreten sollten nicht helfen kann noch ein Paar Sachen zu Dateipfaden (vielleicht hast du dich ja nur verschrieben):

-> Und für alle die diesen Thread gerade lesen.

Es gibt:
- Normale
- Relative
- Absolute

Normal wäre (auf einem Windows Betriebsystem): Laufwerksbuchstabe://verzeichniss/datei.endung
Realativ ist wenn du aus einem Bestimmten verzeichniss (Ort) heraus auf einen anderen zugreifst.
Absolut ist wenn man von der Webserver obligatorischen Script Dir (sorry damit hab ich keine Erfahrungen) ausgeht.
Beim zweiten: Wenn man in C Laufwerks Root Ordner ist "verzeichniss/datei.endung"
Wie aber nun in ein komplett anderes Verzeichniss springen?
Ganz einfach mit "../" in der Url.
-> Überall wo "../" steht bedeutet das für den Re chner "Gehe ein Verzeichniss höher"

Man sollte Leerzeichen und Sonderzeichen abgesehen vom "_" Strich vermeiden.

Achtung: FOpen Wrapper
Ihr kennt bestimmt die Funktion fopen().
Fakt ist das Include wie fopen() arbeitet was das Dateiöffnen und einlesen anbelangt.
Wrapper nennt sich der Mechanissmuss bei dem Dateien von anderen Webservern angefordert werden. (Im Prinzip ein "übers internet laden").
Für diese Tech. gibt es eine Option in der PHP.ini wo man diese aktivieren und deaktivieren kann.
Fakt ist auch das PHP FOpen einsetzt wenn ein verzeichnisspfad mit "http://....." oder ähnlich geschrieben steht.

Hoffe zumindest dem einen oder anderen geholfen zu haben.

StefanRHRO
17.09.2003, 13:59
Moin Atomic,

danke erstmal für deine ausführliche Erklärung, aber das war ein Fehler meinerseits, weil ich das .php, beim includen hinten vergessen habe. Habe die Datien zwar so genannt, aber DW hat mir nur unten.inc anstatt unten.inc.php angezeigt, naja jetzt funzt es ja.

Und ich werde am 01.10.2003, meine Seite mit ein paar neuen Gimmicks (von mir geschrieben :cool: ) erweitern, also am 01.10.2003 http://www.pixel4me.de besuchen.

Ist zwar nichts dickes, aber ich denke für nen GFX`ler am Anfang von PHP nicht schlecht. :)

PS: Sorry fürs OFF-Topic Atomic. :D

Atomic
17.09.2003, 16:50
Nein da darfst du dich nicht entschuldigen.. :)
Der Thread beinhaltet nun dank deiner nachfrage ein paar wichtige informationen rund um die arbeit mit dateien.
Und bestimmt gelangt der ein oder andere über eine suchmaschiene oder so hierhin und wird vielleicht fündig.
Und wenn du der du diese Zeilen gerade liest das nicht wirst oder einfach so noch ein paar Fragen hast (auch Noob Fragen): Nur her damit ;)