Leichtes Include Problem ...

focus

Mitglied
Ja Hi! Ic hbin totaler php n00b, und das prob dürfte für euch ein Kinderspiel sein, ....
Also, ich hoffe ich erkläre das alles richtig!

Hier meine Homepage http://www.kamikazze.net

ich habe eine index.php, in der steht folgender code

PHP:
<?php
include ("show/kopf.php"); 
?>

<?php
include($show.".htm");
?>

<?php
include ("show/fuss.php");
?>

Soch, dass ist meine index.php! Dann hab ich dann ein verzeichniss, dass heißt " show " , und hier drinnen, befinden sich meine ganzen Dateien, die später angezeigt werden sollen, in der Tabelle! Also mit dem Kopf und dem Fuss klappt das alles, nur dieses

PHP:
<?php
include($show.".htm");
?>

macht mir Probleme, wenn da zum Beispiel später ein Link von mir so heißen soll

index.php?show=forum

da heißt die Datei bei mir im Show Ordner " forum.htm " und dieses

PHP:
<?php
include($show.".htm");
?>

Macht mir Probleme, weil es den Ordner Show nicht findet oder sonst wie, dann kommt dieser Fehler

Warning: Unable to access .htm in /home/u34086609/kamikazze/www/index.php on line 6

Warning: Failed opening '.htm' for inclusion (include_path='.:/usr/lib/php') in /home/u34086609/kamikazze/www/index.php on line 6

Und Line 6 ist grad diese Zeile hier

PHP:
include($show.".htm");

Also strikt, bevor ich irgendwas blabbere was sowieso nicht stimmt

Ich will das ich per Link wie z.b. index.php?show=forum die Datei im Ordner " show " " forum.htm" mit diesen Link aufrufen kann und das die Page keine Include FEhler meldet

Aergh, hey sorry, wenn das alles so durcheinander ist, ich hab keine ahnung genau, wie ich das beschreiben soll und vor allem das es ein n00b Prob ist, Forum suche habe ich verwendet, aber ich weiß ja nicht genau, nach was für einen Fehler ich suchen muss ....
 
Also das sieht ja ganz böse aus was du da gebaut hast. :-)

Am besten arbeitest du in diesem Fall mit einem Switch. Das sollte dann folgendermaßen aussehen. In die Tabelle in der Mitte, in die deine Inhalte sollen schreibst du etwas in der Art hier:

PHP:
<?php 
switch($show){ 
case "forum": include("show/forum.php"); break;
case "news": include("show/news.php"); break;
// Und so weiter, was immer du noch brauchst..
default: include("show/hauptseite.php"); break; 
//default wird als Standard eingefügt wenn kein Link angegeben wurde, ist alse deine Startseite...
} 
?>

Deine Links zB fürs Forum müssen dann wie gewünscht so aussehen:

index.php?show=forum

Gruß
 
Und der Vollständigkeit halber solltest Du vorher noch die Variable aus dem HTTP-Protokoll ziehen:
PHP:
$show = $_GET['show'];
Sonst ist die Variable nämlich immer leer.
 
Ist im Falle von Switch aber eigentlich nicht nötig, oder? Bei mir hat es jedenfall auch immer ohne funktioniert. $show kann ja ruhig leer sein, solange die Default Seite includet wird. Und sobald ein Case eintritt besteht das Problem ja nicht mehr.
 
juhuuu es klappt, nur jetzt wird irgendwie mein styl.css net mehr gelsen, aber das bekomm ich auch noch irgendwie hin! big thx :D
 
Doch, das mit dem $_GET liegt daran, dass ab PHP 4 aus Sicherheitsgrünen erst die Werte aus dem HTTP-Protokoll gezogen werden müssen, bevor man damit arbeiten kann.
Ausserdem kannst Du Dir bei Deinem Code sogar noch das switch sparen:
Code:
$show = $_GET['show'];
if (isset($show)) include("show/" . $show . ".htm");
else include("show/hauptseite.htm");
 
Jo, sicher. Es gibt da viele verschiedene Möglichkeiten das zu realisieren. Aber Mit dem Switch hat bei mir eigentlich in jeder Situation immer alles wunderbar geklappt... ;)

Und das wie gesagt ohne das $_GET. Auf verschiedenen Servern mit PHP4.. Auf diversen Seiten... Probiers aus... :-(

Ach, und Focus: Prüf doch auf deiner Seite mal die Links in den Menüs. Ich kann mir nicht vorstellen, dass das Absicht ist, das bei jedem Klick ein neues Fenster aufgeht, oder? ;)

Also einfach target="_parent" statt "_blank".
 
Zuletzt bearbeitet:
hehe, genau das wollte ich gerade fragen, dann hat sich das auch erledigt :D

[edit] ==>

Ja neues Problem, 2 sogar, also :
==============================================
1.) Bei längeren Pfaden wie z.B.
PHP:
case "refmaterial-pictures-tanks": include("kamikazze/ref/referenz/panzer/ref_panzer.htm"); break;

Will er einfach nicht die Datei include, liegt das an den mehreren Ordnern? Weil wenn ich dann auf den Link klicke, kommt dann dieser Fehler ->

Warning: SAFE MODE Restriction in effect. The script whose uid is 30 is not allowed to access ./kamikazze/ref/referenz/waffen/ref_waffen.htm owned by uid 1038 in /home/u34086609/kamikazze/www/index.php on line 668

Warning: Failed opening 'kamikazze/ref/referenz/waffen/ref_waffen.htm' for inclusion (include_path='.:/usr/lib/php') in /home/u34086609/kamikazze/www/index.php on line 668

Woran könnte es liegen?
==============================================
2.) Mein Newsscript will nicht laufen! Habe das als default gemacht
PHP:
default: include("news/kamikazze_main.php"); break;
Der komplette Pfad zum NesScript ist "http://www.kamikazze.net/news/ " tjo und dann bekommt der Probleme, auf die einzelnen Dateien vom Newsscript zuzugreifen, chmod und so stimmt, muss ich ne neue php datei machen und da rein die news/kamikazze_main.php includen?


Jo, dass wärs :D Ich weiß ich bin furschtbar, aber ihr erklärt das so schön! Bin grad oberscharf aufs includen, lol ...
 
Zuletzt bearbeitet:
das mit deinem newsscript liegt wahrscheinlich daran, dass es includet wird :-)
normal ist das ja in dem ordner /news, indem es auch seine config etc. hat, nur wenn du das jetzt includest, läuft das newsscript nicht mehr aus dem news ordner, sondern aus dem ordner, in dem die datei ist, die es einbindet. deshalb findet es die dateien nicht. also solltest du die newsscript dateien am einfachsten ins verzeichnis deiner index.php oder welche auch immer das newsscript includet kopieren.
 
mmh, das newsscript hat allgemein probleme mit sowas, hab mir vorhin einen hack geladen, der das behebt!

andere Frage, gibt es keinen PHP Code, der mir einfach sagt, das er eine Datei anzeigen soll? Also, achtung nicht lachen, soll jetzt ein PHP-Code sein (lol)

PHP:
<?php
anzeigen ("pfad/dateiname")
?>

Wie heißt der Befehl? Weil include macht das ja auch, aber da gibts dann immer so doofe Pfad Probleme, heißt der Befehl require? oder echo?
 
Zurück