Unterverzeichnisse, ich check es nicht

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

Unterverzeichnisse, ich check es nicht

Postby Walter_vdV » 24. January 2005 18:18

Ich weiss, dass diese Thema hier schon öfters beschrieben und diskutiert wurde. Ich habe auch schon alles greifbare gelesen,
ich kapiere es immer noch nicht "How to do".
Ich habe bei mir die folgende Verzeichnisstruktur aufgebaut:
In "D:\xampp\htdocs\" das Verzeichnis "MeinProjekt" darin befinden sich z.B. die Files "Index.html, IndexFrame1.php3, IndexFrame2.php3, \Zeigwas.html" sowie das Unterverzeichnis "Script" mit z.B. den Files "File1.php3, File2.php3, File3.inc, File4.js, File5.js" wobei im Verzeichnis "MeinProjekt" alle Files abgelegt sind die im Browser was anzeigen und im Verzeichnis Script alle Files die irgendwo im Hintergrund arbeiten. Es gibt natürlich noch mehrere Unterverzeichnisse aber es geht hier ums Prinzip. Wenn man ca. 250 Files für ein Projekt hat, ist eine Strukturierung
absolut notwendig damit man nicht den Überblick verliert
Als ich noch mit dem Omnihttp-Server gearbeitetet habe war das ziemlich einfach, da war der Server in D:\ und das Projekt in D:\MeinProjekt
und php in D:\php.
Der Aufruf gestaltete sich dann so, 'http://localhost/MeinProjekt/Index.html'. Wenn ich dann von Index.html auf File1.php3 zugreifen wollte war
der Aufruf '/MeinProjekt/Script/File1.php3', und umgekehrt von File1.php3 auf Zeigwas. html, '/MeinProjekt/Zeigwas.html'. Die Verzeichnisse habe ich für php
in den Variablen $root = "/MeinProjekt/" und $script = "/MeinProjekt/Script/" in einem eigenen File definiert, den ich dann bei Bedarf eingebunden habe.
Für Javascript habe ich in IndexFrame1.php3 zwei unsichtbare Inputfelder definiert in denen die Verzeichnisse von php an js übergeben werden (Frame1 wird
nur beim ersten laden aufgerufen und dann nicht mehr geändert). Ich musste mir bei Erweiterungen also keine Gedanken mehr über die Verzeichnisse machen
sondern nur noch die Files mit den entsprechenden Variablen beim Aufruf verknüpfen. Ausserdem wenn man später einmal die Verzeichnisstruktur ändert muss
man nur einmal die php-Variablen anpassen.
Bei xampp funktioniert das alles nicht mehr, ich kann einfach nicht auf die Files im Unterverzeichnis "Script" zugreifen. Ich hab schon alles probiert, z.B. in der conf wie
für phpMyAdmin einen Alias angelgt und dabei natürlich "MeinProjekt" in "D:\xampp\" gelegt, es geht nicht. Ich weiss nicht mehr weiter. Entsprechende Beiträge
hier im Forum behandeln das Thema zwar, aber wie man genau vorgeht ist für mich einfach nicht verständlich genug dargelegt. Zur Not muss ich halt wieder auf den
Omni umsteigen (soll keine Drohung sein).
Bin für jede Hilfe dankbar.
Gruss Walter
Walter_vdV
 
Posts: 48
Joined: 20. January 2005 20:09

Postby Wiedmann » 24. January 2005 18:34

Bei den Unterverzeichnissen hat sich nichts geändert. Die URL's funktionieren genauso wie du sie angegeben hast. also das erste "/" in der URL ist dein "htdocs" - Verzeichnis. (Beim Aufruf über den Browser)

Die Dateifunktionen in PHP, wie z.B. auch include(), greifen allerdings direkt über das Dateisystem zu. Hier sind die Pfade genauso anzugeben wie in der Eingabeaufforderung.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Walter_vdV » 24. January 2005 19:12

Hier sind die Pfade genauso anzugeben wie in der Eingabeaufforderung.

Das kapier ich eben nicht! Vor allen Dingen wenn ich alle Files in mein root-Dir schmeisse (php-Variable natürlich anpassen) funktioniert es doch auch.
Gruss Walter
Walter_vdV
 
Posts: 48
Joined: 20. January 2005 20:09

Postby Rolidor » 25. January 2005 13:25

Hi.

Walter_vdV wrote:wenn ich alle Files in mein root-Dir schmeisse (php-Variable natürlich anpassen) funktioniert es doch auch.


Logisch! Sacht Wiedmann doch. Dann zeigen deine Vars $root und $script nähmlich auf '/.' - das ist für das Dateisystem, genau wie beim Server, das aktuelle Verzeichnis. Beide Variablen können in diesem Fall auch leer sein.

Mein Tipp: Wenn sich deine Verzeichnisstruktur nicht ändert, benutze Pfadangaben relativ zu den Dateien, die andere Dateien via include einbinden und spar dir den führenden Slash für das root-Verzeichnis. So kannst du absolute Pfadangaben vermeiden.

Gruß
Rolo
Rolidor
 
Posts: 406
Joined: 20. April 2004 10:17
Location: Dreieich - Hessen

Postby Walter_vdV » 25. January 2005 15:33

@Rolo
benutze Pfadangaben relativ zu den Dateien

Das will ich eben nicht. Ich entwickle auf einem PC auf der Arbeit mit einer bestimmten Verzeichnisstruktu, zu Hause mit einer anderen. Ein Kollege, der mir ab und zu hilft arbeitet mit dem Omni. Letztendlich läuft es beim uns im Intranet auf einem IIS. Ich habe mir das von vorneherein richtig überlegt und möchte das so beibehalten.

Hier sind die Pfade genauso anzugeben wie in der Eingabeaufforderung.


Diese Aussage kapiere ich nicht, welche Eingabeaufforderung? Kann mir das bitte mal einer an einem Beispiel darlegen. Ausserdem es muss doch möglich sein, wenn man den den Webserver wechselt in der gleichen Weise weiterzuarbeiten, ohne zig Scripte zu ändern.
Es kann sich doch nur um Einstellungen handeln.
Gruss Walter
Walter_vdV
 
Posts: 48
Joined: 20. January 2005 20:09

Postby Wiedmann » 25. January 2005 15:38

Ausserdem es muss doch möglich sein, wenn man den den Webserver wechselt in der gleichen Weise weiterzuarbeiten, ohne zig Scripte zu ändern.

Genau deshalb sollte man bevorzugt mit relativen Angaben arbeiten...

Diese Aussage kapiere ich nicht, welche Eingabeaufforderung?

Bei jedem Windows gibts im Startmenü eine Verknüpfung die mit "Eingabeaufforderung" beschriftet ist.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Walter_vdV » 25. January 2005 16:16

Soll das heissen, ich muss, wenn ich ein php-sript ansprechen will, folgende Angabe machen "D:/xampp/htdocs/MeinProjekt/Script/File1.php3". Wenn es das ist, dann funktioniert es auch nicht. Das habe ich schon längst probiert.
Genau deshalb sollte man bevorzugt mit relativen Angaben arbeiten...

Das hat aber den Nachteil, dass man sich immer darüber Gedanken machen muss, in welchen Verzeichnis befinde ich mich gerade, muss ich einmal oder zweimal zurückspringen oder bin ich gerade im richtigen. Mit der absoluten Pfadangabe setze ich jedem Script die Pfadangabe voran egal in welchem Verzeichnis ich mich gerade befinde, insbesondere wenn der Aufruf auch noch von js kommt (so funktioniert es wenigstens mit dem Omnihttp). Da von mir einige Scripte öfters in mehreren Modulen verwendet werden, tu ich mich auch leichter, wenn ich mal ein Script aus org. Gründen in ein anderes Verzeichnis verschiebe, z.B. Ersetze global (in allen Files) $root."File1.php3" mit $script."File1.php3"
Gruss Walter

edit: Aber die Diskussion Vor- u. Nachteile von absoluten Pfadangaben soll hier nicht das Thema sein, sondern wie kann ich die Skripte ansprechen in einer Form, wie ich es am Anfang beschrieben habe.
Walter_vdV
 
Posts: 48
Joined: 20. January 2005 20:09

Postby Wiedmann » 25. January 2005 16:30

Wie auch immer...

Jedenfalls ist der Apache (XAMPP) ein Webserver wie jeder andere auch. Deshalb funktioniert es hier auch genauso wie überall.

sondern wie kann ich die Skripte ansprechen in einer Form, wie ich es am Anfang beschrieben habe.

Nur um nochmal Sicher zu gehen:
Du redest hier ausschliesslich über das Aufrufen eines Scriptes über den Browser, also die URL die man in die Adresszeile tippt oder einen Link den man anklickt?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Walter_vdV » 25. January 2005 17:13

Danke Wiedmann (natürlich auch Rolo), ich habs. Ich habe einen Gedankenfehler gemacht :oops:
Ich habe den Teil "D:/xampp/htdocs" (Form der Eingabeaufforderung :-) ) mit in meine Variablen aufgenommen und wie schon beschrieben übergebe ich die an Javascript. Da stimmt es dann aber nicht mehr, da muss ja dann wieder stehen "/MeinProjekt/Script/". Gottseidank setzt setzt sich mein Aufruf in allen php-Skripts so zusammen: $serverpath.$script."File1.php3".
also:
$serverpath = "D:/xampp/htdocs"; (Wobei der Name Serverpath in diesem Fall natürlich unzutreffend ist, werde es gelegentlich mal durch $htdocspfad ersetzen)
$script ="/MeinProjekt/Script/";
und an js wird nur $script übergeben.
Puuh, ich wollte xampp schon Adieu sagen, weil ich mich jetzt damit doch schon einige Stunden beschäftigt habe. Die Stunden haben sich aber insofern gelohnt, da ich dabei zusätzliche Informationen aufgenommen habe, insbesondere wenn ich jetzt doch am Ball bleibe.
Gruss Walter
Walter_vdV
 
Posts: 48
Joined: 20. January 2005 20:09


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 9 guests