Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » Problem mit Includes aus anderen Directories Antworten
Problem mit Includes aus anderen Directories

Can
Halbgott


Beiträge: 1330


Hallo!

Ich habe in meinem PHP-Script das Problem, dass ich ein anderes PHP-File aus fremdem Directory includiere, und dieses natürlich wiederum seine relativen Includes nicht findet.

Also:

index.php:
<?
...
include("sources/test.php");
...
?>

sources/test.php:
<?
...
include("include.php");
...
?>

include.php befindet sich in dem Fall in "sources". Aber auch chdir("/sources"); oder ähnliches hilft nichts.

Was kann ich tun?

Can

---
"S-púrlawits'chkâ A-ngáse gûrewüdíx" - Zaphrot Bibelprox

  Profil   E-Mail   Editieren   Zitieren

einstein
Quasselstrippe


Beiträge: 241


kannst du nicht den absoluten Pfad nehmen?
den könntest du doch in einer Config festlegen lassen und das problem wäre gelöst.

den Pfad zur Root Ebene erhälst du per $_SERVER["DOCUMENT_ROOT"]

  Profil   Editieren   Zitieren

Can
Halbgott


Beiträge: 1330


Du meinst in jedem include den absoluten Dateinamen angeben? Find ich etwas unpraktisch, denn das macht die Scripts ja auch config-abhängig.

---
"S-púrlawits'chkâ A-ngáse gûrewüdíx" - Zaphrot Bibelprox

  Profil   E-Mail   Editieren   Zitieren

einstein
Quasselstrippe


Beiträge: 241



Can schrieb am 2002-12-18 15:24 :
Du meinst in jedem include den absoluten Dateinamen angeben? Find ich etwas unpraktisch, denn das macht die Scripts ja auch config-abhängig.


was spricht dagegen, dass ein Script-Config abhängig ist. Du könntest das umgehen in dem du alles in einen Ordner packst, aber dann ist die Übersicht dahin.

Aber du kannst ja auch jedes Mal die Ordner-Struktur vom der Datei im Source Ordner neu auslesen lassen:
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11:
<?
/* /index.php hat 10 Zeichen: das ist der 
Dateiname der in der Adressleiste vom Browser steht. Oder auch nicht wenn es eine index.php ist/*
$dir = substr($REDIRECT_URL,0,-10);

if($dir) { $dir .= "/"; }

include($_SERVER["DOCUMENT_ROOT"]."/".$dir."source/include.php");
?>


Meine Ordnerstruktur schaut dabei so aus:

[*irgendwas*]
--index.php
--[source]
-----include.php
-----test.php



  Profil   Editieren   Zitieren

m3rlin
Quasselstrippe


Beiträge: 264


Eine andere Möglichkeit wäre, vor dem includieren die aktuelle Verzeichnisebene anzugeben und diese dann innerhalb des Includes auszuwerten, also etwa so:

index.php:
<?
...
$include_level = 1;
include("sources/test.php");
...
?>

sources/test.php:
<?
...
for($i=0;$i<$include_level;$i++) {
$include_string .= "../";
}

include($include_string."include.php");
...
?>


---
Webspace Preisvergleich Server Preisvergleich

  Profil   Editieren   Zitieren

Can
Halbgott


Beiträge: 1330


OK, danke für die Antworten; habe es jetzt etwas anderst gelöst.

Can

---
"S-púrlawits'chkâ A-ngáse gûrewüdíx" - Zaphrot Bibelprox

  Profil   E-Mail   Editieren   Zitieren
 

Antworten
Nach oben