Framework

  • Themenstarter Themenstarter Votura
  • Beginndatum Beginndatum
V

Votura

Hallo liebe Mitglieder von tutorials.de

Ich habe hier einen kleinen Code:

PHP:
<body>

<div id= 'container'>
   
   <div id='head'>
<p>text</p>
   </div>

   <div id='main'>
<?php
   switch($section){ 
   case "home": include("home.php"); break; 
   case "seite1": include("seite1.php"); break;
   case "seite2": include("seite2.php"); break;
   default: include("home.php"); break;}
?>
   </div>
</div>

</body>

Wie schaffe ich es wenn z.B. seite1.php aufgerufen wird dass sich nicht nur diese Datei lädt, sondern das ganze Drumherum auch? Es ist ja mehr oder weniger mit Frames zu vergleichen einfach auf der Basis von PHP.

Ich hoffe ihr versteht was ich meine. :confused:

Gruss Oli
 
Zuletzt bearbeitet von einem Moderator:
Was verstehst du denn mit "Drumherum" :suspekt: ? Sollen sich die Inhalte/das Aussehen der Einzelnen Block-Elemente auch ändern oder wie ist das gemeint?

Gruß soyo
 
Du könntest die $_SERVER['PHP_SELF'] überprüfen, und falls nicht index.php ist per header('location: index.php') wieder auf die index seite umleiten.

Btw: seite2.php kann nicht erreicht werden da sie auch auf home case`t ,)
 
Unter Drumherum verstehe ich in diesem Fall den Head bereich. :)
Viel mehr ist ja in diesem Beispiel nicht vorhanden.
Wenn ich im Div "Head" die Links zu den verschiedenen seiten habe möchet ich das dieser Bereich bestehen beleibt, das ist aber nicht das Problem.

Angenommen jemand kommt jetzt auf die Seite seite1.php dann wird ja nu dieses eine Div "seite1" dargestellt. Mein Problem ist jetzt wie bringe ich diese Seite dazu den Container um sich herum mitzuladen.

Ich hoffe ich habe es mehr oder weniger Verständlich Formuliert. :D

Gruss Oli
 
Hmm was du auch noch machen könntest währe den kopfteil und den fussteil in 2 dateien auslagern.
Dann in deiner index sie mit include_once() einzubinden und in den anderen php files auch, dann währe es egal ob sie direkt aufgerufen wird oder über die index.php er würde beide male die seite richtig anzeigen. Auch ohne seitenwechsel.

Aber generell wenn deine seite so aufgebaut ist das sie über die index.php laufen soll, kannst du ruhig auch den rediect mit header() machen.
 
Es gibt unterschiedliche Methoden, das direkte Aufrufen einer Skriptdatei zu unterbinden.
Eine Möglichkeit ist, in der zentralen Skript-Datei eine Konstante/Variable zu definieren und die Existenz dieser in den anderen Dateien zu prüfen, etwa:
PHP:
if( !defined('FOOBAR') ) {
	header($_SERVER['SERVER_PROTOCOL'].' 403 Forbidden');
	exit;
}
Eine andere Möglichkeit ist dies direkt auf Webserver-Ebene einzustellen, beispielsweise mittels „mod_rewrite“-Modul:
Code:
RewriteCond   %{REQUEST_FILENAME}   !/index\.php$
RewriteRule   .+\.php$              -   [F]
Befinden sich betroffenen Dateien in einem eigenen Verzeichnis, ist auch Folgendes möglich:
Code:
<Location /foobar>
	Deny from all
</Location>
 
Vielen Dank für die Antworten, konnte es mit Hilfe von Gumbo's Tipps realisieren.

Der Dank geht aber an alle !! :D
 
Zurück