anzeige
Fragen zu php funktionen
Seite: 1 2 3 4
| Autor | Beitrag |
|
Teegee 11.03.10 - 15:29:04 Uhr |
Ich will ja genau erreichen dass man nicht Dateien aus anderen Verzeichnissen aufrufen kann, sondern nur aus Pages. Dies erreiche ich ja wenn ich basename verwende, weil dann nimmt er nur das "main" (z.B. aus file=../main) und bekommt die normale main datei im pages/main angezeigt. das mit dem startup includen soll wirklich nur bei einem Dokument angewendet werden, alle anderen index.php sollten bei einer leeren eingabe (index.php ohne ?file=) die "Standart-Datei main.html im Ordner Pages anzeigen. wie sag ich ihm dass wenn file leer ist dass er dann so tun soll als würde dort file=main stehn. Das funktioniert mti dem Code hier recht gut,
$file = 'pages/'.( ( ! empty( $_GET['file'] ) && strpos( $file, '..' ) === false ) ? $_GET['file'] : 'main' ).'.html';
da ha ich dann aber auch ein require_once $file; drin was beim neuen code nicht mehr der Fall ist, und hier kann man auch Dokumente aus anderen Verzeichnisen aufrufen (was ich ja nicht will) zudem sind all meine Versuche, die zwei miteinander zu kombinieren gescheitert. PS: Das mitm if (!empty ...) include(''); ist schon klar, aber die schwierigkeit ist dass es nicht reicht nur die main.html zu includen, denn da braucht es noch ein paar andere dateien, damit die seite (richtig) aussieht. |
|
Achtzig 11.03.10 - 17:02:42 Uhr |
Zitat: das mit dem startup includen soll wirklich nur bei einem Dokument angewendet werden, alle anderen index.php sollten bei einer leeren eingabe (index.php ohne ?file=) die "Standart-Datei main.html im Ordner Pages anzeigen. Unter welchen Bedingungen soll denn die Startup-Datei eingebunden werden? Wenn Du sowieso mehrere Indexdateien hast, kannst Du die doch entsprechend anpassen. In Deinem Posting von 10.03.10-15:42:03 gehst Du aber anscheinend von einer einzigen Indexdatei aus. Zitat: wie sag ich ihm dass wenn file leer ist dass er dann so tun soll als würde dort file=main stehn
if (empty($file)) { $file='main'; }
Zitat: ... aber die schwierigkeit ist dass es nicht reicht nur die main.html zu includen, denn da braucht es noch ein paar andere dateien, damit die seite (richtig) aussieht. Ich würde eine main.php daraus machen und dort die benötigten Dateien einbinden. Wenn nicht, funktioniert doch das vom letzten Mal: http://www.pytal.de/topic,0,1,9864,3. Zitat: Ich weiss ungefähr wie ich das machen muss und hab hier auch nen Code der das erreicht. ... Aber wie ich den in ... einbaue hab ich nicht rausgefunden. Meinst Du sowas? $file = basename($_GET['file']); $file = 'pages/'.(!empty($file) ? $file : 'main' ).'.html'; Den Test auf .. brauchst Du nach basename nicht. |
|
Teegee 11.03.10 - 17:58:50 Uhr |
nun es ist so: Es gibt eine Domain mit mehreren Subdomains. Die "haupt"domain mit dem www. hat die Indexdatei, wo wohne eine angabe von file die startup datei eingebunden wird. Siehe hier: http://verdant-meadows.com/index.php <- includet datei aus http://verdant-meadows.com/pages/intr...artup.html http://verdant-meadows.com/index.php?file=main <- zeigt dann die eigentliche seite an mit http://verdant-meadows.com/pages/main.html Bei dieser Datei ist es nicht möglich, Dateien aus anderen Verzeichnissen aufzurufen, sondern nur die aus http://verdant-meadows.com/pages/ (so z.B. die main.html bei file=main) bei den Subdomains wird diese Startup Seite nichtmehr benötigt. (hat den Quellcode, den du verlinkt hast zum anderen thread) z.B. hier: http://airfield.verdant-meadows.com <- Holt datei aus http://airfield.verdant-meadows.com/p.../main.html http://airfield.verdant-meadows.com/i...?file=main <- Holt datei aus http://airfield.verdant-meadows.com/p.../main.html Hier ist aber das Problem, dass du das Verzeichnis ändern kannst, z.B. so: http://airfield.verdant-meadows.com/i...serv/index <- holt datei aus http://airfield.verdant-meadows.com/s...index.html Und das möchte ich eben verhindern. Diese Subdomain-index Dateien brauchen die Startup Datei nicht mehr. Daher hab ich dort den Code gekürzt auf:
Das Problem ist, dass es nicht reicht wenn ich ihm sage include ('pages/'.$file.'.html'); Weil das ganze Dokument besteht aus mehreren includes.
Ich hab mal dein if (empty($file)) { $file='main'; } eingebaut bei Zeile 3, 4, 5 aus dem oberen Code, allerdings hat sich nichts geändert und hab ne leere seite angezeigt bekommen bei index.php |
|
Achtzig 11.03.10 - 18:19:58 Uhr |
Vielleicht sollten wir in kleinen Schritten weitergehen. Ist es in Ordnung, keine html-Dateien sondern nur php-Dateien zu verwenden? Macht die Sache wesentlich einfacher. Möchtest Du die einzelnen Bereiche in einzelnen Dateien vorhalten (kopf.php, navi.php, fuss.php ...)? Wenn ja, wo sollen die Dateien liegen? So in etwa: includes/kopf.php includes/navi.php includes/fuss.php includes/error.php pages/main.php pages/other.php pages/intro/startup.php airfield/index.php impressum/index.php index.php Nachtrag: Warum soll startup eigentlich nicht in pages liegen? |
|
Teegee 11.03.10 - 19:03:01 Uhr |
die einzelnen Dateien liegen zZ im Root verzeichnis, wir können sie aber auch in einen ordner namens includes tun. anmerkung: alle index dateien von den subdomains verwenden die gleichen include datei. airfield hat einen eigenen ordner. also beim absoluten pfad: www/verdant-meadows.com/ www/airfield.verdant-meadows.com/ wieso die startup in einem unterordner von pages ist: damit diese nicht per file= aufgerufen werden kann, da die startup einen eigenen header und völlig anderes layout hat. |
|
Achtzig 11.03.10 - 19:15:27 Uhr |
Gut, dann hoffe ich mal, daß Dir das weiterhilft (alles php, zum Testen wieder unter /test/index/) index.php
airfield/index.php und impressum/index.php
includes/error.php
includes/kopf.php
includes/navi.php
includes/fuss.php
pages/main.php
pages/other.php
pages/intro/startup.php
So, ich hoffe, ich habe an alles gedacht. ... Gütige Werte für file sind '', main und other |
|
Teegee 12.03.10 - 01:51:45 Uhr |
WOW... das
if (empty($file)) { $file='main'; }
hatte ich auch so bei mir drin aber irgendwie wollte der des net so ausgeben wie bei dir. Bei dir funktionierts
|
- Obige Beiträge stellen keine Äußerung oder Meinung von Pytal oder dessen Betreiber dar -



