Zugriff verweigern innerhalb eines Includes

Firestorm696

Mitglied
Ich habe mal wieder ein Problem mit den Zugriffen.

Diesmal will ich den Zugriff für ein Serverinclude verweigern. Das funktioniert soweit auch ganz gut, nur das Redirecten wenn der Zugriff verweigert ist funktioniert nicht, da der Header bereits gesendet wurde. Wie mach ich das bei Includes?

Fehler:

Warning: Cannot modify header information - headers already sent by (output started at /usr/export/www/vhosts/funnetwork/hosting/gosgilde/index.php:76) in /usr/export/www/vhosts/funnetwork/hosting/gosgilde/intern.php on line 42

Code zum Weiterleiten:
PHP:
$MM_restrictGoTo = "index.php?section=internno";
if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {   
  $MM_qsChar = "?";
  $MM_referrer = $_SERVER['PHP_SELF'];
  if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";
  if (isset($QUERY_STRING) && strlen($QUERY_STRING) > 0) 
  $MM_referrer .= "?" . $QUERY_STRING;
  $MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);
  header("Location: ". $MM_restrictGoTo); 
  exit;
}
 
Na wies das steht im Header, anders gehts nicht

Du musst doch die seite ja irgendwie includen, über einen link, wenn ich das richtig sehe über section,

das heißt du musst auf der Seite wo's reingeladen werden soll, im Header ein if Abfrage machen, genau mit dieser Seite, und dann halt dein Zeugs ausführen was die Fehlermeldung macht.

zum Beispiel so:

PHP:
<?php
if($_GET[section] == "zugriff"){
session_start();
}
?>
<a href="index.php?section=zugriff">Zugriff verweigern</a>
<?php
include($_GET[section].".php");
?>

So würdes es funktionieren wenn du in der datei "zugriff.php" eine Session brauchst, aber die Datei mit include geladen wird. Ob es genau bei deinen Problem auch so funktioniert weiß ich nicht, aber ich denke mal schon so ähnlich, ein bisschen umgeschrieben gehörts halt.

gruß, Domsi
 
Naja nicht ganz so... der Fehler kommt immer noch!

Ich habs nicht genau geschildert also:
Ich hab eine Hauptpage (index.php), die hat links ein Menü. Ein Menüpunkt lautet "intern" und dieser hat den Link "index.php?section=intern". Das Includefenster, das die $section abfragt, soll also die intern.php laden. Und auf diese soll man nur kommen, wenn man eingeloggt ist. Wenn man das ist, funktioniert soweit alles. Wenn nicht, kommt der Header-Fehler. Ihr könnt euch ja ein Bild machen wenn ihr auf http://www.guardiansofsilmaril.at.gg seht!

Aber danke für den Tipp Domsi!
 
Ja du musst so wie ich es geschrieben hab in der index.php machen!

So eine Abfrage musst du genau dort machen, auch mit der Session. Das Abfragen und eventuelle noch Zusätzlich einbauen das es nur aufgerufen wird wenn man auch ausgeloggt ist!

Sollte meiner Meinung nach so funktioniern
 
Das mit dem ob_start() versteh ich nicht so ganz... (ihr müsst wissen: ich bin mit PHP noch nicht sehr vertraut)
Also Domsi deins versteh ich eigentlich... funktioniert aber irgendwie nicht... oder ich habs doch nicht verstanden :D
 
öh ja :D

dazu müsste ich sehen was du da genau gemacht hast, weil es funktioniert ja bei mir irgendwie auch so. Also ich würde brauchen:

Die Hauptseite (oder halt die Seite wo der interne Bereich hineingeladen wird)
Das Menü oder den Menüpunkt "intern" (den gesamten Link)


Ich glaub vom ersten Code, also das was im internen Bereich angezeigt werden soll, ist eh alles da oder?

Jo wenn ich das alles bekomme, kann ich dir sagen was es hat oder mal schaun ob ich den Fehler finde.

gruß, Domsi
 
Zurück