Frage zu "switch"+"include"

NemoFinder

Mitglied
Hallo,

ich wollte mir jetzt mal ne Homepage mit dieser ich nenne es jetzt mal "index.php?site=news"-Variante basteln. Da ich mich damit nicht auskenne habe ich erst mal ein wenig diesbezüglich nachgelesen. Hier im Forum habe ich dann auch einen Thread gefunden (keine Ahnung welcher das jetzt war) der mir weiter geholfen hatte. Dort wurde beschrieben, dass man sich verschiedene Seiten über
" <?
switch($site){
case "news" : include("news.php") ; break;
...
default : include("news.php") ; break;
}
?>"
anzeigen lassen kann, dort wo der obrige Text steht. Und es klappt auch soweit gut. Nur wenn in der neuen Seite ein Link steht den ich dann auch anklicke wird die neue Seite immer in einem neuen Fenster geöffnet und nicht in der Indexseite. Kann man das irgendwie anders machen?
 
Ich glaube das Problem liegt daran das Du ihm nicht genau sagst wo du es einbinden möchtest.
Versuch es mal mittels <div id=""> zu finden bei Quakenet Tutorial unter Frames faken.

PHP:
 echo '<div id="menu">';
 include ('menu.php') ;
 echo '</div>';
 
 echo '<div id="content">';
 if(isset($_GET["site"])){
    switch($_GET["site"){
 		case "news":
 		   include("news.php");
 		   break;
 		   ....
 	 }
 }
 else
 {
    include("news.php");
 }
 echo '</div>';
 
Index Seite
<body>
<table>
<tr>
<td><a href="index.php?site=news" ><img src="1.jpg"></a></td>
<td><img src="2.gif"></td>
</tr>
.....
<tr>
<td>
<?
switch($site){
case "news" : include("news.php") ; break;
......
default : include("news.php") ; break;
}
?>
</td>
</tr>
</table>
</body>

News Seite
<body>
<table>
<tr>
<td>
<td align="center"><A href="news.php">news</a></td>
</tr>
</table>
</body>
 
1. verwende die globals $_GET, $_POST, oder $_REQUEST! in diesem fall also $_GET.

schreib dazu in die erste zeile des dokuments einfach:

PHP:
<?php
$site=$_GET['site'];
?>

2. alle links die die zu inkludierenden seiten betreffen müssen so aussehen wie der erste.

also:
PHP:
index.php?site=news
 
@Nero_85
Dann muss ich jeden Link auf in diesen Switch-Bereich schrieben?

@Flips
Dann versuche ich mich jetzt auch mal durch deinen Vorschlag zu arbeiten.
 
Entweder du schreibst jeden Link in den Switch bereich oder du löst das Problem dynamisch mit einer schleife:
(sag bescheid wenn ich falsch liege)


PHP:
if(file_exists($site.'.php'){
	include($site.'.php');
}
else{
	echo 'seite ist noch nicht implementiert';
}

Die einzige Bedingung hier ist nur, dass das Schlüsselwort im link gleich mit dem Dateinamen ohne Dateiendung ist.
Zum Beispiel:

Für die Seite „news.php“ dann index.php?site=news
oder für die Seite „content.php“ dann index.php?site=content

Außerdem müssen diese Seiten alle im gleichen Verzeichnis liegen. am besten machst du es so.
du erstellst den Ordner „inhalte“, speicherst dort alle zu includierenden Dateien rein
und schreibst an die stelle wo die Seiten eingefügt werden sollen:

PHP:
<?php

$path='inhalte/';
if(file_exists($inhalte.$site.'.php'){
	include(inhalte.$site.'.php');
}
else{
	echo 'seite ist noch nicht implementiert';
}

?>
 
Mahlzeit !

könntet Ihr das ganze mit dem include von Seiten für ein Menü im Ganzen zeigen? Leider habe ich bei "Quakenet Tutorial" (http://tut.php-q.net/) nichts dazu gefunden. Man möge mir verzeihen, bin heut wohl noch ein bisserl Wiesn geschädigt :eek:
 
Mahlzeit !

habs jetzt hin bekommen und zwar so :

Code:
<?PHP
  if ( empty( $_GET['go'] ) ) { 
   include 'news.php'; 
  } else { 
   switch ( $_GET['go'] ) 
   { 
     case 'news': 
          include 'news.php'; 
     break; 
     case 'people': 
          include 'people.php'; 
     break; 
     case 'erotik': 
          include 'erotik.php'; 
     break; 
     case 'stills': 
          include 'stills.php'; 
     break; 
     case 'sport': 
          include 'sport.php'; 
     break;
       case 'animals': 
          include 'animals.php'; 
     break;  
       case 'shop': 
          include 'shop.php'; 
     break;  
       case 'contact': 
          include 'contact.php'; 
     break;  
       case 'impressum': 
          include 'impressum.php'; 
     break;
            case 'mailformalfons': 
          include 'mailformalfons.php'; 
     break;    
      case 'mailerfolg': 
          include 'mailerfolg.php'; 
     break;    
   } 
  }

?>

wobei mailformalfons und mailerfolg die Dateien sind die von der Unterseite mit Beispielsweise ?go=mailformalfons includet werden. So weit so gut, ist es möglich direkt ein .gif zu includen ? (wenn man .gif einfach so includet, kommt natürlich der quelltext des Bilds) Jetzt würde mir einfallen einfach ne neue Seite zu includen die nur aus einem Bild besteht, aber es muß doch einfacher gehen, oder? Gibt es irgendwelche Seiten auf denen man so etwas nachschlagen kann ? (selfphp ist im Gegensatz zu selfhtml imo nicht so gelungen :\ )
 
Zuletzt bearbeitet:
Also ich bin auch ein absoluter Neuling in Sachen PHP.

Ich arbeite momentan auch an einer Site auf Basis dieses simplen Systems à la "index.php?section=news". Es ist kein Problem für mich, den Inhalt in den verschiedenen .php-Dateien einzubinden, ich habe ein ganz anderes Problem: in der index.php habe ich mehrere Grafiken vorgesehen, die sich mit dem Wechseln der section anpassen sollen. Manche heißen genau wie die jeweilige Section, andere haben einen Suffix ("_header" oder sowas). Auf welchen Code muss ich zurückgreifen, um diese Bilder einzubauen?

:rolleyes:
 
Zurück