Hallo liebe Community, ich hab da Problem bei der Unterbindung des Direktzugriffs auf Dateien welche ich einbinden möchte.
Grundaufbau der Seite.
Die Index.php bindet einen HTML Headerfile ein, welche wiederrum im Headbereich der Seite dann die params.php einbinden soll. Diese enthält Datenbankparameter und alle anderen includes. Nun möchte ich aber den direkten Zugriff auf die params.php unterbinden. Ich habe im Netz geschaut und einen eigentlich verständlichen Ansatz gefunden, den ich mit meinen PHP Kenntnissen vermeitlich verstanden habe. Jedoch funktioniert dieser Ansatz bei mir irgend wie nicht. Vielleicht kann mir jemand sagen, was ich hierbei falsch mache.
index.php
header.html
params.php
Wenn ich jetzt die index.php aufrufe bekomme ich folgende Fehermeldung.
Warning: define() expects at least 2 parameters, 1 given in C:\xampp\htdocs\user\page\params.php on line 7
Direktzugriff nicht mögich
Die Fehlermeldung kann ich ja noch mit @ unterbinden, jedoch ist der Zugriff über die Index.php nicht möglich. Der Direktzugriff bzw. die Unterbindung funktioniert schon mal, aber das ganze bringt mir ja nichts, wenn ich nicht über die index.php auf die params.php zugreifen kann.
Wenn ich mir jetzt die Konstante in der params ausgeben (zugriff über die index.php) hat ACCESS auch den Wert 1, ich verstehe nicht ganz wieso dann der Ausdruck if(@!define('ACCESS')) ein TRUE ergibt.
Grundaufbau der Seite.
Die Index.php bindet einen HTML Headerfile ein, welche wiederrum im Headbereich der Seite dann die params.php einbinden soll. Diese enthält Datenbankparameter und alle anderen includes. Nun möchte ich aber den direkten Zugriff auf die params.php unterbinden. Ich habe im Netz geschaut und einen eigentlich verständlichen Ansatz gefunden, den ich mit meinen PHP Kenntnissen vermeitlich verstanden habe. Jedoch funktioniert dieser Ansatz bei mir irgend wie nicht. Vielleicht kann mir jemand sagen, was ich hierbei falsch mache.
index.php
Code:
define('ACCES', TRUE); include 'header.html';
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta charset="iso-8859-1"> <?php include_once 'page/params.php'; ?> </head>
Code:
if(!define('ACCESS')){ die('Direktzugriff nicht mögich'); } echo "ZUGRIFF MÖGICH";
Wenn ich jetzt die index.php aufrufe bekomme ich folgende Fehermeldung.
Warning: define() expects at least 2 parameters, 1 given in C:\xampp\htdocs\user\page\params.php on line 7
Direktzugriff nicht mögich
Die Fehlermeldung kann ich ja noch mit @ unterbinden, jedoch ist der Zugriff über die Index.php nicht möglich. Der Direktzugriff bzw. die Unterbindung funktioniert schon mal, aber das ganze bringt mir ja nichts, wenn ich nicht über die index.php auf die params.php zugreifen kann.
Wenn ich mir jetzt die Konstante in der params ausgeben (zugriff über die index.php) hat ACCESS auch den Wert 1, ich verstehe nicht ganz wieso dann der Ausdruck if(@!define('ACCESS')) ein TRUE ergibt.
Kommentar