[PHP] probleme mit include()

crishnak

Active member
ID: 218350
L
2 Juli 2006
31
5
moin,
neulich ist mir aufgefallen, dass mein webspace langsam knapp wird. um platz zu sparen, wollte ich dateien, die in jeder seite via include() eingebaut werden, in einen einzigen ordner (bisher: jedes verzeichnis ein ordner) packen.

mit include ("pics/menu.htm") und so funktionierts aber da brauch ich halt in jedem verzeichnis. wollte es so machen include("/pics/menu.htm") aber so krieg ich parsing errors, obwohl die datei auf jedenfall existiert.
welche möglichkeiten hab ich?
 
musst nochn paar punkte davormachen, wenn ich dich richtig verstanden habe:

include('../pics/dingsums.html');

jedes verzeichnis höher, ein punkt mehr.



gruß,
dein mrspam .9
 
habs noch nicht probiert, werds gleich mal tun aber vorher nochmal eine genauere erklärung:
bisher läuft es so:
die einbindende seite ist https://www.xyz.org/tipps/tipp1.php
die über include eingebundene datei findet man unter https://www.xyz.org/tipps/pics/menu.htm.
das funktioniert, nur braucht jeder ordner einen eigenen pics-ordner, was wiederum platz frißt.
von daher soll die https://www.xyz.org/tipps/tipp1.php ihre includes aus dem order: https://www.xyz.org/pics/ holen...und das klappt bisher nicht.
 
mmmh - hast du ICQ/Skype/MSN?

Da das ganze unter umständen ein etwas längeres Gespräch werdenkann, wäre es hilfreich wenn du dich darüber melden könntest.

Daten bitte per PN schicken.
 
Wozu ICQ, das kannste in zwie Sätzen beschreiben :roll:
Dein Ziel ist es, eine Datei zu includen die nciht wie bisher in einem Ordner darunter, sondern in einem Ordner darüber ihr Dasein fristet :yes:
Normal wäre es also "pics/index.html", damit php aber auch weiß dass die Datei weiter oben zu finden ist, brauchst Du die Punkte - ".../pics/index.html".
Probier einfach mal zwei, drei oder veir Punkte aus, je nachdem wie hoch die Datei liegt.


Gruß,
Dein MrSpam :)
 
Schon alleine die Sache mit "Syntaxfehler" ohne nähere Angaben erfordert imho eine weitergehende Fehlersuche als mit relativen Pfadangaben rumzufummeln...
 
ok, das funktioniert auch nicht so wirklich...er findet den ordner nicht, egal wieviele punkte ich setzte...mein erster versuch, also quasi include ("/pics/banner.htm"), bringt folgende meldung. vllt hilfts beim helfen:D

Warning: main(): open_basedir restriction in effect. File(/pics/banner.htm) is not within the allowed path(s):
 
Och Mensch, ich hab grad schlechte Laune, aber ums mal so zu sagen: dieses Rechtsystem is fürn Arsch :p
Die Meldung heißt eigentlich dass Du keinen Zugriff oberhalb des htdoc-Ordners, also des roots hast, aber das is hier ja irgendwie unsinnig; oder ich hab das falsch im Gedächtnis. Seitdem ich damit aufgehört hab, bröckelts bei mir Stück für Stück :mrgreen:
Wenn Du soweit Zugriff hast, schau mal hier:

https://www.php.net/manual/en/features.safe-mode.php

Mit nem open_basedir = base_dir und safe_mode_include_dir = off sollte des funzen - aber auch diese Angabe ohne Gewähr.


Gruß,
Dein MrSpam :)

edit:
Aso, was mir grad eingefallen is: vll hast Du bei der Fehlermeldung ja nurn Punkt zuviel gemacht und bis tatsächlich oberhalb Deiner Rechte angelangt! War Dein Beispiel denn korrekt mit den Pfaden? Dann kann ich Dir nämlich auch sagen wie viele Punkte es sein müssen.
 
ich geh mal davon aus, dass ich das wahrscheinlich eh keine rechte setzen kann, da es nicht mein server ist...oder lieg ich da falsch?:ugly: soll mir was sagen?

Okay, ausührlicher.

:arrow: Eine open_basedir restriction ist kein parsing fehler
:arrow: /pics/xyz.php ist was anderes als pics/xyz.php (das ist z.B. /var/www/web1/html/pics/xyz.php)

Weiter kann ich dir nicht helfen, weil ich nicht verstehe, wie du durch das Löschen von Ordnern richtig Speicherplatz gewinnen willst; und "jedes Verzeichnis ein Ordner" ist. Außerdem sollte man "das" etc. auch ausschreiben und einigermaßen verständliche Sätze bauen.

Sorry, aber das musste sein.
 
ok, ich erklärs mal haarklein.
jede meiner unterseiten wird teilweise aus immer den gleichen includes zusammengebaut. diese dateien befinden sich immer im ordner pics. wenn ich also eine seite schreibe und diese in einen ordner packe, braucht der ordner noch den unterordner pics, damit alle teile der seite (wie z.B. das menü) auch vorhanden sind. weil es meiner meinung nach platzsparender wäre diesen pics-ordner nur einmal auf meiner seite zu haben, wollte ich, dass alle seiten sich ihre includes aus dem selben ordner holen.
der ordner sollte hier liegen: www.studentenhelfer.org/pics/

nun soll die seite www.studentenhelfer.org/htm/bibo/geschichtswissenschaften.php die includes auch aus www.studentenhelfer.org/pics holen und nicht wie bisher aus www.studentenhelfer.org/htm/bibo/pics/.
meinen include() befehl habe ich deshalb von "include("pics/blabla.php");" auf include("/pics/blabla.php"); bzw. include("https://www.studentenhelfer.org/pics/blabla.php") abgeändert. beides hat das problem nicht gelöst.

zusätzlich wäre es für mich einfacher z.B. das menü zu ändern, da ich bisher immer jede menü-datei in jedem unterordner ändern musste. würden alle seiten ihre includes aus einem ordner ziehen, bliebe mir das kopieren erspart.

mit nur einem punkt funktioniert es übrigens auch nicht... :(
 
Zuletzt bearbeitet: