Frage zur Include Funktion

Spaddy

Grünschnabel
Schönen guten Tag;
Ich bin Anfänger in Sachen PHP, möchte aber für die Homepage eines Fussball Fanclubs die Include Funktion benutzen. Ich habe mich auf diversen Tutorial Seiten schlau gemacht jedoch bleibt eine Frage offen:

Ich habe eine Tabelle, die aus einem Header, 2 Navi-Leisten(links+rechts) einem Footer und der Hauptzelle in der mitte besteht. Der Mittel Teil soll durch die include funktion eingebettet werden. Dazu benutze ich folgenden Code:
PHP:
<?php 
$action = $_GET["action"]; 
if (!isset($action)) { $action = "main"; } 
$action = "./include/".$action.".php"; 
include ($action); 
?>

Das ist alle kein Problem jedoch möchte ich nicht immer Datein aus dem Ordner Include einfügen, da z.b. das forum(wbb2) in einem anderen ordner liegt.......

Wie kann ich das einbringen durch Include aus anderen Ordnern verwirklichen?

Danke schonmal für die Hilfe...
 
Nimm id's für die Seiten und speichere immer eine Seite (mit Ordnerangabe) mit einer ID in einer DB.

bsp :
1 "./include/main.php"
2 "./include/news.php"
3 "./vbbforum/index.php"

Verstanden ?
 
danke für die schnelle hilfe...

tut mir leid noch nicht so richtig....
wie der code den ich benutze habe ich auch als anfänger verstanden, da ich andere programmier sprachen in der schule gelernt habe. was eine datenbank ist weiss ich auch, aber was eine ID ist und wie ich dies anwenden soll ist mir leider nicht klar....

würde mich über weitere hilfe freuen....


Zoe Sophie Hitze, 06.11.2004, 09:19 Uhr, 3820 gramm, 54 cm
http://www.silberkind.de/?page=news&id=5
Hab gerade dies in der Signatur gesehen. darin ist ID vorhanden, läuft das mit der ID auch über die GET Funktion?

danke
 
Zuletzt bearbeitet:
ID ist einfach nur ein IDENTIFIER .. bzw. wird das in den meisten Fällen
so bezeichnet. Wie du daß machst bleibt dir überlassen. ID steht einfach
nur für die Seite die du aufrufen möchtest, da es bei längeren Dateinamen
sehr hässlich ist den kompletten Dateinamen zu übergeben. Ausserdem
können die Leute so etwas über die Struktur deines Systems erfahren,
was nach Möglichkeit ebenfalls zu vermeiden ist.

Alles was über die URL kommt wird über den GET Hash abgerufen,
alles was über Formulare geht meistens über POST.

Bitte achte auf angemessene Groß/Kleinschreibung und schreibe nicht
permanent klein, danke.
 
Sorry, ich werde besser auf die Schreibung achten. ;ein Problem ist aber leider immer noch nicht ganz behoben. Ich weiss, wie ich die Variablen aus der URL geladen bekomme. Nur weiss ich nicht wie ich den Code ändern muss um das richtige im Main Part der HP anzeigen zu lassen....
Die Verwendung der 2. Variablen in der URL müsste mir besser erläutert werden

Ich erbitte weitere Hilfe
Danke
 
Du solltest ohnehin nicht direkt den Parameter im include verwenden, da darüber beliebige Dateien eingebunden werden können. Ich glaube es geht auch include "./../../"; Dann kommt im Zweifel sogar jemand an z.B. die .htaccess oder andere wichtige Dateien ran.
also so einen Code würde ich bevorzugen:
PHP:
<?
$action = $_GET["action"]; 

$actions              = array();
$actions['main']      = './include/main.php';
$actions['news']      = './include/news.php';
$actions['impressum'] = './include/impressum.php';
//...
$actions['forum']     = "./forum/forum.php";
$actions['error']     = "./include/error.php";
if (empty($action)) {
    $action = 'main';
}
if (!isset($actions[$action])) {
    $action = 'error';
}
include $actions[$action];
?>
 
Danke für die Hilfe, dieser Code ist genau das wo nach ich gesucht habe!
Herzliches Dankeschön

Offen bleibt noch:
Was ist der Unterschied zwischen:
PHP:
'./include/main.php'; 
"./forum/forum.php";

1. Sprich: Was ist der Unterschied zwischen Anführungszeichen(") und (') ?
2. ./ bedeutet, dass man einen Unterordner zurück geht, richtig?
3. Kann man auch http: Links verwenden

Danke nochmals.....
 
Zuletzt bearbeitet:
1.
In diesem Zusammenhang überhaupt keiner, ist mir nur so passiert.
Aber:
Bei "bla" werden einfache Variablen im Text geparst.
Also wird bei "Hallo $name"
$name durch den Inhalt der Variablen $name ersetzt, während mit ' die Zeichenfolge $name ausgegeben wird.
Bei html-Ausgabe Hilft es, wenn Du ' benutzt, da in html-Tabs desöfteren " auftauchen, die musstest Du sonst escapen:
"<a href=\"./index.html\">" ist das gleiche, wie '<a href="./index.html">'
Andererseits musst Du ' in einem ' String escapen:
"Mit geht\'s gut!'

2.
richtig und je nach Serverrechten kommst Du bis ins Windowsverzeichnis (ich gehe da jetzt mal von meinem Windows Test Apache aus)

3.
Die Frage verstehe ich nicht. Bitte mal anders formulieren.
 
Zuletzt bearbeitet:
Danke für die Hilfe, echt super:
Mit der 3. Frgae meinte ich, ob ich auch html per Include Funktion in die tabelle einfügen kann, und wie dann die befehle lauten müssen.
 
Aha!
Das kannst Du.
Du must halt nur statt dem ".php" ein ".html" hinschreiben, dann gibt er an der Stelle, wo du include machst das aus, was in der html-Datei steht.
In der Regel macht man das aber nur für einzelne Teile der Seite, die statisch sind.
Sonst ist der Vorteil der Dynamik von PHP ja dahin.
Oder Du machst dynamisch Deinen Seitenkopf, mitsamt dem (sich dynamischen ändernden) Menü/Navigation und bindest dann die html Datei mit dem reinen Inhalt ein (die darf dann kein <html>, <head> und so enthalten). Am Ende bindest Du dann noch einen Footer ein, der oft nur </body></html> enthält.Manchmal natürlich auch ein Copyright-Statement oder was mann sonst so am Fuss der Seite inhaltsunabhängig stehen hat.
Da dies keine html-Seiten sind, sondern eigentlich nur Fragmente einer html-Seite würde ich sie aber auch nicht html nennen, sondern eher eine Endung, wie .inc oder .include verwenden.
Die Verzeichnisse, in denen diese Dateien liegen würde ich mit .htaccess schützen, damit der User sie nicht direkt aufruft.
Aber um dieses Thema weiter zu vertiefen solltest Du Dir mal die diversen PHP-Tutorials über Templates durchlesen.

Gruß hpvw
 
Zurück