Wie nEox eigentlich bereits schrieb, gibt es m.E. nur eine Möglichkeit; man läßt alles über ein zentrales Skript laufen. Ich sehe beim Apachen zwei Möglichkeiten dies zu realisieren. Das eine ist die von nEox angesprochene Variante. Ich habe mich für eine andere entschieden. Ich nutze die Rewrite-Engine von Apache. So wird bei mir im Hintergrund alles über ein zentrales Skript geleitet. Dazu habe ich im Hauptverzeichnis eine .htaccess liegen, deren Eigenschaften durch die Konstruktion von Apache glücklicherweise in die Untervezeichnisse weitervererbt werden. Die .htaccess sieht bei mir so aus:
Code:
## force that every static page is parsed by main.php
AddHandler application/x-httpd-php .layout
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} MSIECrawler
#RewriteCond %{REMOTE_ADDR} ^80\.126\.26\.28$ [OR]
#RewriteCond %{REMOTE_ADDR} ^63\.99\.105\.162$ [OR]
RewriteRule !robots.txt - [F]
RewriteRule !^layout/layout\.layout.* - [C]
#RewriteRule (.*) /~ts/ts/layout/layout.layout/$1 [E=BASEURL:/~ts/ts]
RewriteRule (.*) /ts/layout/layout.layout/$1 [E=BASEURL:/ts]
Beim Rewrite setzte ich hier noch zusätzlich eine Umgebungsvariable, die ich dann im Skript nutzen kann, um zu erkennen, ob ich auf dem Live-Server oder auf dem Test-Server arbeite. Denn beide nutzen etwas andere Basis-Pfade.
Im sog. doorway script, also dem Eingangsskript, wo alle Aufrufe transparent durchgeleitet werden, kann ich dann überprüfen, ob der Aufruf erlaubt ist oder nicht. Dadurch daß alle Aufrufe durchgeleitet werden, ist die Überprüfung nicht nur auf php- oder html-Dateien limitiert.
Im dooway script werden auch alle notwendigen php-Objekte initialisiert, z. B. Datenbankzugriff und auch Benutzerzugriffsverwaltung. Das doorway script kann entweder entsprechend des Benutzers und seiner Rechte einfach HTML-Dateien anzeigen oder nicht oder nur teilweise, indem sie z.B. nach meinen selbstdefinierten Tags geparst werden.
Die eingebundenen PHP-Scripte erben die intialisierten PHP-Objekte und haben damit natürlich auch Zugriff auf die Benutzerdaten.
Pingu
Lesezeichen