• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Includes "absichern"

Hesoyam

Neues Mitglied
Hey,

ich wusste net genau, wie ich des nenen soll, also hab ich es einfahc mal "absichern" genannt.

Und zwar geht es um meine Navigation.
Über das Administrationsmenü kann man verwalten, was dort alles stehen soll und auch generell, welche Seiten es "gibt", zbsp. wenn jmd. hans.html in der adresszeile eingibt, bekommt er nen 404-Fehler weil diese Seite nicht in der Datenbank steht.

Diese seiten werden im Ordner _sites abgelegt und heissen zbsp. home.site.php.

Wenn ich jetzt im Admin-Menü eintrage dass es die Seite hans.html gibt, dann wird die Datei _sites/hans.site.php included.

Jetzt möchte ich quasi eine Sicherheit einbauen. Wenn ich die Datei beispielsweise mals ausversehen lösche, dann wird ZUR ZEIT am Anfang der Seite der "[function.include]: failed to open stream: No such file or directory in" Fehler angezeigt.

Ich möchte jetzt durch diese Sicherheitsschranke erst überprüfen ob es diese Datei gibt und wenn nein, soll ne Art Fehlerseite oder so angezeigt werden.

Ich habe da auch ne Idee mit einer function save_include.
Diese überprüft mit opendir ob es die Datei gibt. Wenn es sie gibt soll der Ordner-Scan abgebrochen werden und die Datei soll included werden.

Jetzt habe ich das mal gecoded und schon einen Fehler bekommen.
PHP:
<?php
    function save_include($filename){
        $found = false;
        $ordner = '_sites/';
        $handle = opendir($ordner);
        while ($file = readdir($handle)) {
            if($file != "." && $file != "..") {
                if(is_file($ordner.'/'.$file)) {
                    if($file == $filename){
                        $found = true;
                        include($ordner.$filename);
                    }
                }
            }
        }
        closedir($handle);
    }
?>
Wenn ich in der while-schleife mit definiere && !$found, dann scannt er garnet erst, darum habe ich das vorerst mal rausgelassen.

Wenn ich nun eine Seite öffne, deren Datei es im _site-Ordner gibt, dann bekomme ich ne Fehler-Mledung dass Variablen nicht definiert werden.

Verständlich, da die Datei ja in einer Funktion included wird und daher die anderen Variablen ingonriert werden. Ich weiss jetzt nur nicht, wie ich das umschtreiben soll.
Ich möchte nämlich net jede Varibale mit der Funktion übergeben, das ist umständlich und viel zu viel Arbeit für so nen kleinen Include. Wenn es net anders geht au net schlimm, aber wäre halt toll, wenns gehen würde.

Grüße
Daniel
 
Werbung:
Werbung:
Zurück
Oben