Problem med dynamisk 'include'
Venlige eksperter!Jeg har følgende kode i min index.php fil til min hjemmeside:
<div class="indhold">
<?
$page = $_GET['page'];
if (!empty($page)) {
$page .= '.php';
include($page);
}
else {
include('intro.php');
}
?>
</div>
Dermed kan jeg inkludere mange sider i samme design, hvilket jo er skønt, MEN, så havde jeg jo tænkt mig at vise nogle billeder på min side, og bruger følgende kode dertil:
<?php
if($_GET[billeder]){
if(isset($_GET[n])){
echo printpic($_GET[folder],$_GET[n]);
}
}
else{
$sti = "Billeder/".$_GET[sti];
echo printdir($sti);
}
//Her opsættes links og thumbs.
function printdir($folder){
$path = realpath("./");
$sti = $path."/".$folder;
if($bib = opendir($sti)){
$n = 0;
while (false !== ($fil = readdir($bib))){
if($fil !== "." && $fil !== ".." && !ereg("^\..+", $fil)){
$fil_liste[] = "$fil";
}
}
closedir($bib);
if(is_array($fil_liste)){
usort($fil_liste, "strnatcmp");
}
$nn = 0;
for ($n = 0; $n<count($fil_liste); $n++){
if($nn==0){
$nn++;
}
//Her opsættes linkene til mapperne med billider.
if(is_dir($sti."/".$fil_liste[$n]) and $nn < 4){
$liste[] = "<tr><th class=asien><p><a href='$_SERVER[PHP_SELF]?sti=$fil_liste[$n]'>$fil_liste[$n]</a></p></th></tr>";
}
elseif(is_dir($sti."/".$fil_liste[$n])){
$liste[] = "<tr><th class=asien><p><a href='$_SERVER[PHP_SELF]?sti=$fil_liste[$n]'>$fil_liste[$n]</a></p></th></tr>";
}
//Her opsættes thumb-siden.
elseif($nn == 1){
$liste[] = "<tr><td class=asienthumb><p class=asienp>
<a href='$_SERVER[PHP_SELF]?folder=$folder&n=$n&billeder=1'>
<img src='thumb.php?pic=$folder/$fil_liste[$n]' alt='Se billede' class=noborder></a>
<a href='$_SERVER[PHP_SELF]?folder=$folder&n=$n&billeder=1'>$fil_liste[$n]</a></p></td>\n";
}
else{
$liste[] = "<td class=asienthumb><p class=asienp>
<a href='$_SERVER[PHP_SELF]?folder=$folder&n=$n&billeder=1'>
<img src='thumb.php?pic=$folder/$fil_liste[$n]' alt='Se billede' class=noborder></a>
<a href='$_SERVER[PHP_SELF]?folder=$folder&n=$n&billeder=1'>$fil_liste[$n]</a></p></td>\n";
}
if($nn == 4){
$liste[] = "</tr>\n";
$nn = 0;
}
$nn++;
}
$filliste = "<h4>Indhold af $folder:</h4>";
$filliste = $filliste ."<table class=listefarve>\n".join("", $liste)."</table>\n";
return $filliste;
}
else {
die("Noget gik galt :( Skriv til webmaster!".$bib);
}
}
//Her opsættes visningen af det store billede.
function printpic($folder,$n){
$path = realpath("./");
$sti = $path."/".$folder;
if($bib = opendir($sti)){
while (false !== ($fil = readdir($bib))){
if($fil !== "." && $fil !== ".." && !ereg("^\..+", $fil)){
if(is_dir($sti."/".$fil)){
$fil_liste[] = "<a href='$_SERVER[PHP_SELF]?sti=$fil&billeder=1'>$fil</a>";
}
else{
$fil_liste[] = "$fil";
}
}
}
closedir($bib);
if(is_array($fil_liste)){
natcasesort($fil_liste);
}
for ($num = ($n-2); $num <= ($n+2); $num++){
if($num >= 0 && $num < count($fil_liste)){
$liste[] = "<td class=center><p class=asienp>
<a href='$_SERVER[PHP_SELF]?folder=$folder&n=$num&billeder=1'>
<img src='thumb.php?pic=$folder/$fil_liste[$num]' alt='Se billede' class=noborder></a></p><p class=asienp>
<a href='$_SERVER[PHP_SELF]?folder=$folder&n=$num&billeder=1'>$fil_liste[$num]</a></p></td>\n";
}
else{
$liste[] ="<td></td>";
}
}
$numm = $n-1;
$nump = $n+1;
echo "<table class=asientable><tr>";
if($numm >= 0){
echo "<td>
<a href='$_SERVER[PHP_SELF]?folder=$folder&n=$numm&billeder=1'>
<img src='billedsys/pilv.png' alt='Forrige billede' class=noborder></a>
</td>";
}
echo "<td><p class=ingenmargin><img src='pic.php?pic=$folder/$fil_liste[$n]' alt='' class=noborder></p></td><td>";
if($nump<count($fil_liste)){
echo "<a href='$_SERVER[PHP_SELF]?folder=$folder&n=$nump&billeder=1'>
<img src='billedsys/pilh.png' alt='Næste billede' class=noborder></a></td>";
}
echo "</tr></table>\n";
$filliste = $filliste ."<table class=asientable><tr>".join("", $liste)."</tr></table>\n";
$mappe = explode("/",$folder);
$rod = basename($_SERVER[PHP_SELF]);
$filliste = $filliste ."<p><a href='$rod'>Billeder</a> ~ <a href='$_SERVER[PHP_SELF]?sti=$mappe[1]'>$mappe[1]</a></p>";
return $filliste;
}
else {
die("Noget gik galt :( Skriv til webmaster!".$bib);
}
}
?>
Det virker jo også fantastisk alene, bare ikke sammen med den ovenstående dynamiske include kode. Hvorfor ikke? Fordi koden til visning af billederne indeholder følgende:
$_SERVER[PHP_SELF]?sti=$fil_liste[$n]
som resulterer i et kald til den dynamiske include, der, eftersom at den ikke finder en fil, fordi $fil_liste[$n] refererer til et sæt af mapper, returnerer intro.php.
Jeg har slet ingen anelse om hvordan det kan løses!
Skal billedkoden omskrives?
Er der en anden måde at hente de forskellige sider til min index.php?
Er der en tredie mulighed som jeg har overset?
Hjælp venligst. Som det ses på klokkeslettet har jeg kæmpet for at finde en løsning alt for længe!