Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > PHP > PHP-Programmierung > Problem mit dem einbinden in verschiedenen Verzeichnissen
Antwort
 
Themen-Optionen
Alt 08.09.2007, 09:51   Nach oben    #1
Jan
Erfahrener Benutzer
 
Benutzerbild von Jan
 
Registriert seit: 08.01.2006
Ort: Mannheim
Beiträge: 481
Standard Problem mit dem einbinden in verschiedenen Verzeichnissen

Hallo zusammen,

ich möchte eine Datei aus zwei Verzeichnissen einbinden. Die eingebundene Datei bindet weitere Dateien ein. Ich wollte jetzt fragen ob das nur über diesen Weg geht, oder ob es noch weitere Möglichkeiten gibt. Und eine Frage dazu, funktioniert dieser Code überall?

Hier meine Verzeichnisstruktur:
Code:
/
/inc/
/admin/
Die Datei die eingebunden werden soll (global_v2.php) liegt in /inc/
Die eine Stelle an der sie eingebunden werden soll ist in der Datei /index.php
Das zweite mal in der Datei /admin/index.php
Die Datei selber bindet verschiedene Dateien aus dem Verzeichnis /inc/ ein.

/index.php
PHP-Code:
    // Das System einbinden
    
require_once("./inc/global_v2.php"); 
/inc/globals_v2.php
PHP-Code:
    define('JMG_INC_DIR'dirname(dirname(__FILE__))."/");
    
// Die Grundkonfigurationen
    
require_once (JMG_INC_DIR.'inc/config_v2.php'); 
/admin/index.php
PHP-Code:
require_once("../inc/global_v2.php"); 
JMG_INC_DIR hat den Wert "/srv/www/htdocs/server/gsg-mannheim/page/"
Alle weiteren Dateien werden immer über diesen absoluten Pfad eingebunden. Ist sowas sinnvoll, sicher und Standardkonform?
__________________
Jan
info.malte-gerth.de
=================================
Nutzt bitte lieber Jabber statt ICQ:
malte.gerth@jabber.cz
Jan ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 08.09.2007, 14:46   Nach oben    #2
Erfahrener Benutzer
 
Registriert seit: 30.10.2005
Beiträge: 274
Standard

Ich denke es ist komfortabler wenn man den Ordner inc per .htaccess oder php.ini zum include_path hinzufügt.

Dann kann man von überall die Dateien aus "inc" includen. Gleiches mache ich für meinen Library. Ich kann dann von überall die Klassen einsetzen ohne mich mit der Ordnerhierachie zu verhaspeln.
ex³ ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 08.09.2007, 18:09   Nach oben    #3
Jan
Erfahrener Benutzer
 
Benutzerbild von Jan
 
Registriert seit: 08.01.2006
Ort: Mannheim
Beiträge: 481
Standard

Aber das ist er ja nicht unbedingt. Ich hab einfach einige kleine Skriptprojekte die halt ihre eigene Verzeichnisstruktur haben. da gibt es dann viele inc Ordner und jedes Skript bindet aus einem anderen Ordner ein.

Es klappt ja so, aber ich weiß halt nicht ob das eine sinnvolle und übliche Lösung ist. Wichtig dabei ist halt, das es manchmal sein kann, das keine htaccess erlaubt ist und auf die php.ini hat man auch in den seltensten Fällen Zugriff.

Aber du machst es auch so oder über htaccess/php.ini ?
Oder hast du noch eine Idee?
__________________
Jan
info.malte-gerth.de
=================================
Nutzt bitte lieber Jabber statt ICQ:
malte.gerth@jabber.cz
Jan ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 08.09.2007, 18:11   Nach oben    #4
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.619
Standard

Na, die "übliche" Vorgehensweise, wenn es denn so etwas überhaupt gibt, wäre ja eigentlich, dass man in jedem Projekt die gleiche Ordnerstruktur verwendet...

Würd ich nun mal so sehen.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 08.09.2007, 18:15   Nach oben    #5
Erfahrener Benutzer
 
Benutzerbild von MrNiceGuy
 
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 662
Standard

Ich fände es auch praktischer, wenn man den Arbeits-Pfad der Admin-Scripte einfach in '../' verlegt bzw. keine Scripte außerhalb des Root-Verzeichnisses hat. Das ist aber reine Geschmackssache!?
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll
MrNiceGuy ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 08.09.2007, 23:35   Nach oben    #6
Jan
Erfahrener Benutzer
 
Benutzerbild von Jan
 
Registriert seit: 08.01.2006
Ort: Mannheim
Beiträge: 481
Standard

Zitat:
Zitat von Ben Beitrag anzeigen
Na, die "übliche" Vorgehensweise, wenn es denn so etwas überhaupt gibt, wäre ja eigentlich, dass man in jedem Projekt die gleiche Ordnerstruktur verwendet...

Würd ich nun mal so sehen.
Wie meinst du das?
__________________
Jan
info.malte-gerth.de
=================================
Nutzt bitte lieber Jabber statt ICQ:
malte.gerth@jabber.cz
Jan ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 09.09.2007, 00:44   Nach oben    #7
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.619
Standard

Hi,
ich meine die Aussage hier.
Zitat:
Zitat von Jan Beitrag anzeigen
Ich hab einfach einige kleine Skriptprojekte die halt ihre eigene Verzeichnisstruktur haben. da gibt es dann viele inc Ordner und jedes Skript bindet aus einem anderen Ordner ein.
Du solltest versuchen alle deine Projekte mit ein und der selben Struktur zu organisieren. Oder habe ich das Problem falsch verstanden?

Du brauchst nicht viele "inc"-Ordner. Die Inhalte der Ordner, die du nun hast, gehören alle in den gleichen Ordner.
Erklärt bitte noch mal, was du genau für PRobleme hast.
Ist spät ... Tag war lang.

Danke.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 09.09.2007, 01:05   Nach oben    #8
Jan
Erfahrener Benutzer
 
Benutzerbild von Jan
 
Registriert seit: 08.01.2006
Ort: Mannheim
Beiträge: 481
Standard

Ich hab nen lokalen Webserver, auf dem ich meine ganzen Projekte entwickel.

/srv/www/htdocs/ ist in die einzelnen Projekte unterteilt. Viele Projekte haben einen Ordner inc/ . Dort liegen oft dateien die man einbindet in verschiedene Teile der Projekte. Manchmal, und hier ist meine Frage angesiedelt, müssen die Dateien aus inc/ ,des Projekts, in Dateien eingebunden werden die in Unterordnern innerhalb des Projektsordners liegen.
Zum Beispiel was ich geschrieben hatte:
/index.php
/admin/index.php
binden beide die Datei /inc/global.php ein. In dieser datei werden dann noch /inc/config.inc.php ( include(config.inc.php); ) und /inc/class.php ( include(class.php); ) eingebunden.
Soweit klappt es ja auch in der /index.php mit
PHP-Code:
include('inc/global.php'); 
Aber in der Datei /admin/index.php klappt dann
PHP-Code:
include('../inc/global.php'); 
nicht mehr, da er dann im Ordner /admin/ die Dateien sucht wie mir scheint.

Die Frage ist jetzt, wie komme ich, ohne chdir(), soweit, das ich die global.php von überall aus einbinden kann, also in einem beliebig tiefen Unterordner, und global.php trotzdem immer die selben Dateien einbindet.

Ist es jetzt verständlicher?
__________________
Jan
info.malte-gerth.de
=================================
Nutzt bitte lieber Jabber statt ICQ:
malte.gerth@jabber.cz
Jan ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 09.09.2007, 10:36   Nach oben    #9
Erfahrener Benutzer
 
Benutzerbild von MrNiceGuy
 
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 662
Standard

Wenn dein Webserver FollowSymLinks unterstützt kannst du auch einfach einen symbolischen Link im Verzeichnis './admin/' anlegen. Oder arbeitest du auf Windows-Basis?
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll
MrNiceGuy ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 09.09.2007, 13:53   Nach oben    #10
Jan
Erfahrener Benutzer
 
Benutzerbild von Jan
 
Registriert seit: 08.01.2006
Ort: Mannheim
Beiträge: 481
Standard

Nein arbeite ich nicht, aber ich möchte das meine "Projekte" auch unter Windows laufen, also nicht Systemabhängig sind. Sie sollen möglichst auf allen Webhostingpacketen und eigenen Servern laufen. Von daher hätte ich gerne eine PHP Lösung innerhalb dieser Projekte.
__________________
Jan
info.malte-gerth.de
=================================
Nutzt bitte lieber Jabber statt ICQ:
malte.gerth@jabber.cz
Jan ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 09.09.2007, 21:51   Nach oben    #11
Erfahrener Benutzer
 
Registriert seit: 17.11.2005
Ort: Rheinland-Pfalz, Osthofen
Beiträge: 122
Standard

Weiß jetzt keinen Hoster der set_include_path verbietet. Aber du kannst eine Konstante zum Hauptverzeichnis als Pflicht vorgeben. Ich nutze bei meiner Bibliothek die Konstante PHP_FILE_END, um die Dateiendung der PHP-Dateien leicht ändern zu können. Ohne die geht nix.
PHP-Code:
define('PHP_FILE_END''.php');
define('BASE_DIR'realpath(dirname(__FILE__) . '/..'));


set_include_path(get_include_path() . PATH_SEPARATOR
    
BASE_DIR PATH_SEPARATOR
    
BASE_DIR '/library'
); 
dago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
mail-Klasse; Problem mit dem Anhang Jann Hendrik PEAR, PECL und Frameworks 5 04.07.2007 09:16
[PHP] FTP-Funktionen in PHP nutzen MrNiceGuy Tutorials 0 24.05.2006 14:18
CSS Problem: Div hängt aus dem MasterDiv heraus Chr!s HTML, XML und CSS 9 01.03.2006 13:36
Problem mit dem verlinken innerhalb von pdf-Dokumenten wegen der Nutzung von BBCode Jann Hendrik PHP-Programmierung 3 10.02.2006 16:27
Kugel bewegen - Problem mit dem Ansatz Ben Desktop-Applikationen und Grafik 5 11.04.2005 17:50


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:20 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44