Hi Bastian,
Ich habe 10 Dateien ("include/aa.inc", "include/bb.inc" usw.). Diese 10 Dateien habe ich in einem array zusammengefasst, das so aussieht:
<?php
$dateien['1'] = "aa.inc";
$dateien['2'] = "bb.inc";
usw.
?>
warum versuchen ein assoziatives Array zu erstellen? Verwende doch einfach ein numerisch indiziertes ($dateien[1],$dateien[2],..) ausser du möchtest dann irgendwelche strings als indizes verwenden.
$dateien=array();
$dateien[1]="aa.inc";
$dateien[2]="bb.inc";
.
.
.
Dieses array ist in der Datei "include/inc_config.php" gespeichert, und mit <?php include ( "include/inc_config.php" ); ?> in die Seite "index.php" eingebunden.
schreib zur fehlersuche mal die relevanten teile in ein script.
würde nachher z.b. index.php (Hauptseite) ins wurzel- bzw stammverzeichnis legen und inlcudes in Verzeichnis include/ oder inc/
z.b. Struktur
index.php
inc/config/config_sites.inc.php (das array)
inc/sites/site_1.inc.php
inc/sites/site_2.inc.php
bedenken: parser sieht pfade aus perspektive des ablaufenden scripts. wenn z.b. site_1.inc.php (included in index.php) wieder includepath enthält, dann wieder von stammverzeichnis ausgehen. (z.b. inc/...)
Außerdem gibt es folgendes skript:
<?php
if(isset($_GET['section']) AND isset($dateien[$_GET['section']])) {
include $dateien[$_GET['section']];
} else {
include $dateien['1'];
}
?>Dieses skript steht in der Datei "include/array.php" und ist mit
<div><?php include ( "include/ports.php" ); ?></div> in die Seite "index.php" eingebunden.
Wieso nicht einfach an dieser Stelle den obigen Code so reinschreiben? Es sollte übersichtlich bleiben und es ist ja keine Anweisung, an der du oft etwas ändern wirst. An dieser Stelle möchtest du die Datei, (wenn isset, wie oben) die in deinem Array als Index den Wert der übergebenen section hat, einbinden.
Wenn ich nun von "index.php" einen Link nach dem Muster <a href="include/ports.php?section=1">Link1</a> aufrufe,
Schreib die Links so rein:
<a href="<?php echo $_SERVER['PHP_SELF'];?>?section=1">Link1</a>
damit rufst du das aktuelle script (deine Hauptseite) auf und übergibst die Variable an eben dieses Script zur Verarbeitung.
oder:
<a href="index.php?section=1">Link1</a>
die anderen includes bindest du ja auch in deine index.php ein, also ist dies das übergordnete Script, das abläuft.
bekomme ich folgende Fehlermeldung, mit der ich nur so viel anfangen kann, dass entweder in der in der Datei "array.php" etwas nicht stimmt, oder im Bezug des Links zur Datei.
Hier die Fehlermeldung:
"Warning: main(): Failed opening '' for inclusion (include_path='.:/usr/local/lib/php') in /include/arrey.php on line 5"
Das deutet eher darauf hin, dass die Pfade in der php.ini nicht korrekt gesetzt sind. Am Scriptanfang gegebenfalls setzen (gilt während scriptablauf):
<?php ini_set("include_path", "my_root_dir");?>
http://www.modwest.com/help/kb5-98.html
http://at.php.net/manual/de/ini.core.php#ini.include-path
viel Erfolg, Jonny5