• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Page-Aufruf ohne Base-Datei unmöglich machen!?

K

Knowledge-Junkie

Guest
Hallo,
alle meine Dateien lade ich per PHP-Include in eine Tabelle, wie kann ich sicherstellen, das eine Page nicht alleine aufgerufen werden kann?
Also meine Links bilde ich nach folgendem Schema: index.php?page=Kategorie/UnterKategorie/Datei.php
Wenn aber nun jemand nur "Kategorie/UnterKategorie/Datei.php" eingibt erscheint die Page ohne das Drumherum (die Tabelle). Um dies zu verhinder suche ich einen Befehl der in jedes Dokument eingebunden wird und somit sichersetllt, das die index.php mitgeladen wird.
Praktisch:
Suche nach Umgebung (index.php), wenn nicht vorhanden laden, ansonsten so laden... :)

Bin für jede Hilfe dankbar!

MfG
KJ
 
mach doch so!

schreib einfach
include ("dateien/$page");

jetzt kennt keiner den path wo die datei wirklich liegt also kann keiner die datei manuell aufrufen!

oder du setzt eine variable z.B. umgebung=ok
und nur wenn in den anderen documenten die variable gefunden wird lassen sich die documente laden!

Ich hoffe das stimmt so!
 
Zuletzt bearbeitet:
hmm

Unter JavaScript gab es da so einen Befehl:
<!--
function checkFramecall()
{
var Adressanhang=location.search;
if(Adressanhang)
frames.Hauptframe.location.href=Adressanhang.substring(1,Adressanhang.
length);
}
file://-->
und weiter weiß ich nicht mehr ;)

Gibt es das nicht auch für PHP?
das mit $page, will ich deshalb nicht weil ich dann ja in eine Datei alle Dateien reinschreiben muss die mein Website hat => Das wär mir zu viel arbeit...
da nehme ich dann bei include==&page...

Es soll in jede Datei ein Befehl, der prüft ob der Rahmen vorhanden ist und wenn nicht soll dieser geladen werden...
 
habe ich doch gesagt

in die index.php schreibst du rein:

$ok = ok;

und in alle andren dateien:

if ($ok != "ok"){echo "Die seite muss in dejm rahmen geöffnet werden!";exit;}

so kann man die dateien nur mit der index.php öffnen da sonst ja nicht die variable $ok = ok gegeben ist.

Müsste so gehen.
 
AHH, habs kapiert

@xxoes
Nun bin ich schon fast am Ziel....
Mir fehlt nur noch:
Das die Page mit dem Rahmen neu geladen wird wenn "ok" nicht gesetzt ist.
Mein Ansatz:
if ($ok != "ok")
echo "<a href='index.php?page=$PHP_SELF'>HIER IS Besser :)</A>";
?>

Da sind nur noch zwei Probleme:
1. $PHP_SELF gibt vor dem Datei-Namen noch einen "/" aus. Dann wird die Datei logischerweise nicht gefunden. Man müsste also irgendwie immer die erste Stelle löschen... => ???
2. Eigentlich soll die Page sofort mit dem Rahmen neu geladen werden und nicht erst ein Link ausgegeben werden...

Wäre Dir sehr dankbar wenn du mir noch sagen könntest wie ich das realisieren kann...THX!
 
Also

<?
if ($ok != "ok") {header ("Location: index.php?page=$REQUEST_URI");}
?>

so wechselt er sofort auf die ramendatei. Mit der $REQUEST_URI das siht dann so aus:
header ("Location: index.php?page=/page/infos/kato/test.php")

oder erstelle mal eine *.php datei die:
<? phpinfo();?>
enthält da werden alle variablen ausgegeben und suchst dir die beste raus!

so muss es doch gehen oder?
 
Zuletzt bearbeitet:
funktioniert nicht

ich bekomme dann folgenden Fehler:
Warning: Cannot add header information - headers already sent by (output started at e:/webs/pc-projekt/work/news.php:6) in e:/webs/pc-projekt/work/news.php on line 7

Eine "bessere" Variable habe ich auch nicht gefunden, vor allem keine die den "/" weglässt, würde also so eh nicht funktionieren den nach "page=" folgt sofot der Datei-Name bzw. das Verzeichnis, also z.B.
index.php?page=news/news_archiv/news.php; index.php?page=/news/news_archiv/news.php erzeugt dann einen Fehler...

Die Fehlermeldung mit dem header verstehe ich aucht nicht, ein header ist doch immer gesetzt, oder?
Er müsste den doch einfach überschreiben = ?
hmm, ich hoffe du kannst mir noch weiterhelfen.
Aber auch so schon vielen DANK!
 
hab mir jetzt die vorigen ansätze nicht so richtig durchgelesen,
aber es müßte doch so gehen, oder?

If $http_referer == "richtigeumgebung"
{lad die seite}
Else
{fehlermeldung oder umleiten zur richtigenumgebung}

oder funktioniert der referer nicht bei frames?
(weiß nicht ob meine syntax perfekt ist, schreib halt nur asp und selten php)
mfg, riddler
 
Zurück
Oben