[PHP] Page nur includebar
-
Hallo,
ich hab auf meinem webserver ne test.php liegen, wenn cih diese per "include("test.php" in eine andere php file includiere zeigt sie mir ein paar infos an. nun möchte ich aber nicht, dass diese infos angezeigt werden, wenn man diese test.php direkt im browser aufruft mit z.b. www.xxx.de/test.php. In dem Fall soll ann z.B. dranstehen: "Kein Zugriff"
Wie kann ich also anfragen ob die page includiert wurde oder direkt aufgerufen wurde ?
Dankeschön
-
mit $phpself denk ich .
-
if $PHPSELF == "test.php" echo "Zugang verweigert" else //...
^meinst du das so ? ok wäre möglich aber wenn sich der dateiname ändert muss ich ständig in der datei diese zweile oben ändern. gibt es da nicht eine andere möglichkeit ? ich mein im notfall ok, aber wenns was kompfortableres gben würde wäre es prima.
thx schonma
-
mach doch einfach ne Variable .. bool a = true und testest auf die ...
ich glaub net das es direkt testbar ist ob eine datei includet wird oder direkt aufgerufen wird ..
-
ja genau, das is ne gute methode, danke dir !
-
Schreib dir doch ne Funktion für deine Informationen. Wenn man die Datei dann aufruft wird nix angezeigt, erst der Aufruf der Funktion bewirkt das Wunder
-
Das wäre auch ne Möglichkeit:
<? die("Kein Zugriff !!!"); // Hier kommen dann die Daten ... ?>
-
Das "die" wird doch jetzt *immer* aufgerufen, auch wenn du die File includest, oder
-
Ja, auch wenn du includest, wird es ausgeführt, allerdings sollte man die Datei dann nicht includen, sondern ganz normal einlesen. Ist natürlich etwas umständlich, allerdings sollte das bloß als alternativer Denkansatz verstanden werden
-
sorry, dann hab ich dich falsch verstanden :p
-
index.php:
<?
xyz)
die("zugriff verweigert!");
.....
?>
-
Ich hab dir jetzt mal was kleines gebastelt, was bei mir funktioniert hat und ganz ohne diese zusätzlich zu setzende Variable auskommt
<? $script = str_replace('\\\\','\\',$_SERVER["PATH_TRANSLATED"]); $file = __FILE__; if($script == $file) die(); // Datei wurde direkt aufgerufen // Dies wird nur ausgeführt, wenn die Datei eingebunden wurde echo 'Datei wurde eingebunden!'; ?>