Include funktioniert zwar, trotzdem kommt Fehlermeldung ?!

C4T

Erfahrenes Mitglied
Hi all,

bin gerade am PHP lernen.
Also noch recht am Anfang.
Zum Testen habe ich mir ein schlichtes HTML Gerüst gebaut und will einfach nur per Link einen bestimmten Content in eine Zelle includen.
Sprich, es existiert nur eine index.php Datei, die restlichen Dateien sind einfach nur Content Dateien die in die index.php included werden sollen.
Klappt auch wunderbar wenn ich auf die verschiedenen Links klicke, leider kommt jedoch eine Fehlermeldung beim Starten der index.php und ich weiss nicht wieso.

Hier mal der Code:
PHP:
<table width="1000" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td height="100" colspan="3"><img src="images/top_rot.gif" width="1000" height="100"></td>
  </tr>
  <tr>
    <td width="150" bgcolor="#880000">
<?php
$content = "inhalt_".$Link.".php";
?>
	<p align="center" class="Stil3"><a href="index.php?Link=1">link 1</a></p>
	<p align="center" class="Stil3"><a href="index.php?Link=2">link 2</a></p>
	<p align="center" class="Stil3"><a href="index.php?Link=3">link 3</a></p>
    <p align="center" class="Stil3"><a href="index.php?Link=4">link 4</a></p>
    <p align="center" class="Stil3"><a href="index.php?Link=5">link 5</a></p>
    <p align="center" class="Stil3"><a href="index.php?Link=6">link 6</a><br>
      <br>
    </p>    </td>
    <td width="700"><?php include($content); ?></td>
    <td width="150" bgcolor="880000">&nbsp;</td>
  </tr>
  <tr>
    <td height="100" colspan="3"><img src="images/bottom_rot.gif" width="1000" height="100"></td>
  </tr>
</table>

Ich bekomme immer folgende Fehlermeldung am Anfang:
Warning: main(inhalt_.php) [function.main]: failed to open stream: No such file or directory in C:\Programme\apachefriends\xampp\htdocs\phptest\index.php on line 41

Warning: main() [function.include]: Failed opening 'inhalt_.php' for inclusion (include_path='.;c:\programme\apachefriends\xampp\php\pear\') in C:\Programme\apachefriends\xampp\htdocs\phptest\index.php on line 41

Line 41 ist übrigens die Zeile, wo ich den Content includen will.
PHP:
<td width="700"><?php include($content); ?></td>
Er fragt also immer nach der Datei "inhalt_.php" die es aber nicht gibt.
Frage ist, wieso sucht er die denn ? Ich habe nur "inhalt_1 - 6".php in meinem Verzeichnis.
Kann mir da jemand weiter helfen ?

Thanks,
C4T
 
Ganz einfach: Die Variable $content wird aus der URL rausgeholt. Wenn du allerdings nur index.php aufrufst, dann gibt es $content nicht.
Lösung: Switch-Abfrage integrieren.
Benutze einfach die Suchfunktion. Stichwörter: switch, include
 
Ok, das mit dem Content leuchtet mir ein.
Hab auch die Suchfunktion genutzt und so einiges über Switch gefunden, leider verstehe ich aber den Sinn nicht.
Ich komme mit den Anweisungen usw. total durcheinander.
Hab hier auch ein dickes PHP Buch vor mir liegen, wo der Switch Befehl zwar erklärt wird, jedoch verstehe ich es nicht wirklich, obwohls ein "Basic" Buch von Dieter Staas ist :(
Für die Erfahrenen isses ein Kinderspiel, weil sie wissen von was sie reden. Nur für den Einsteiger wird das schwer.
Es wird zwar ein Beispiel beschrieben, jedoch wenn ich das auf meine Seite anwenden müsste, wüsste ich nicht wie ich es dementsprechend verändern sollte. Nichtmal mit den anderen Suchtreffern hier im Forum kann ich was anfangen :/
Hätte auch nie heraus bekommen, dass ich eine Switch Abfrage verwenden muss wenn du es mir nicht gesagt hättest.
Ich bin verzweifelt :/
 
Ok Ok, jetzt geht es.
Aber es war sicherlich mehr glück als verstand
Ich poste mal den Code.
PHP:
<table width="1000" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td height="100" colspan="3"><img src="images/top_rot.gif" width="1000" height="100"></td>
  </tr>
  <tr>
    <td width="150" bgcolor="#880000">
	<p align="center" class="Stil3"><a href="index.php?site=inhalt1"><br>link 1</a></p>
	<p align="center" class="Stil3"><a href="index.php?site=inhalt2">link 2</a></p>
	<p align="center" class="Stil3"><a href="index.php?site=inhalt3">link 3</a></p>
    <p align="center" class="Stil3"><a href="index.php?site=inhalt4">link 4</a></p>
    <p align="center" class="Stil3"><a href="index.php?site=inhalt5">link 5</a></p>
    <p align="center" class="Stil3"><a href="index.php?site=inhalt6">link 6</a><br>
      <br>
    </p>    </td>
    <td width="700">
<?php
switch($site)
{
case "inhalt1": include('inhalt_1.php'); break;
case "inhalt2": include('inhalt_2.php'); break;
case "inhalt3": include('inhalt_3.php'); break;
case "inhalt4": include('inhalt_4.php'); break;
case "inhalt5": include('inhalt_5.php'); break;
case "inhalt6": include('inhalt_6.php'); break;
default: include('inhalt_start.php'); break;
}
?>	
	</td>
    <td width="150" bgcolor="880000">&nbsp;</td>
  </tr>
  <tr>
    <td height="100" colspan="3"><img src="images/bottom_rot.gif" width="1000" height="100"></td>
  </tr>
</table>

Ist da noch was zu bemängeln, bzw. kann man da noch was verbessern (ich gehe schwer davon aus *g*), oder muss ich noch was beachten ?
Noch ne Frage ..... wenn ich jetzt noch diverse submenu's hätte, müsste ich dann wirklich alle Menupunkte in so ein Case packen ?
 
Zurück