RÜckverlinken Nicht Zulassen

PHP sended ähnlich wie C/C++ "sofort" die Ausgabe an den Browser. Sobald dieser einen Header mit der Weiterleitung bekommt, geht er zur neuen Seite.

Ich habe es gerade im Zend Studio getestet...
 
Hört sich alles logisch an hab ich auch so realisiert leider funktioniert es nicht ich kann trotzdem alle Seiten im Browser aufrufen. Also direkt auf Unterseiten zugreifen :-(

Tobi
 
ich muss ja jedes mal die Session-Variable mit übergeben oder

wie mache ich das hier :

<frame src="links.php" <?php echo wasOnIndex;?> name="links" Noresize>
 
gibts noch ne andere Lösung, dass der Nutzer nicht im Browser einfach auf alle php Seiten zugreifen kann?

Dank euch

Tobi
 
aKraus hat gesagt.:
PHP sended ähnlich wie C/C++ "sofort" die Ausgabe an den Browser. Sobald dieser einen Header mit der Weiterleitung bekommt, geht er zur neuen Seite.
Nein, das stimmt so nicht (zumindest in der Standardkonfiguration, in der implicit_flush auf Off gesetzt ist). Und selbst wenn PHP jede Ausgabe sofort an den Browser sendet, wartet selbiger in der Regel, bis ihm die komplette Seite zugeschickt wurde. Erst dann werden die Header untersucht und entsprechend darauf reagiert.

Kann man ganz einfach mit folgendem Script testen:
PHP:
<?
header('Location: andereseite.php');
flush(); // gibt die Header sofort aus

sleep(5);
?>

Zum ursprünglichen Problem: man könnte auch den Referer überprüfen:
PHP:
<?
if (!isset($_SERVER['HTTP_REFERER'] || !preg_match('#^http://www\.deinedomain\.tld/#', $_SERVER['HTTP_REFERER'])) {
	header('Location: index.php');
	exit();
}
?>

Browser, die den Referer grundsätzlich nicht weiterschicken, sind dann natürlich nicht mehr fähig, sämtliche Seiteninhalte anzuzeigen...
 
Zurück