Fotogalerie-Problem

  • Themenstarter Themenstarter SilverVegeto
  • Beginndatum Beginndatum
S

SilverVegeto

Hallo,
ich habe einen Script für eine Fotogalerie gefunden. Sie funktioniert auch einwandfrei. Das Problem ist jetzt dieser Script liest alle Ordner aus die im selben Verzeichnis wie die datei galerie.php ist (Grund: Um dort die Bilderorder auszulesen).
Ich möchte die Datei aber jetzt includen auf ein Verzeichnis das drunterliegt, also so:
http://www.meine_website/index.php?ID=01
und hier befindet sich meine Galerie
http://www.meine_website/galerie/galerie.php

Das Problem ist nur wenn ich die Datei include, dann werden alle Dateien aus dem "root"-Verzeichnis ausgelesen uns nicht aus dem /galerie/ - Verzeichnis.

Leider weiß ich nicht genau wo ich das am Code ändern muss damit dies aus dem Verzeichnis /galerie/ gelesen wird.

galerie.php
PHP:
<?php
  if (isset($_GET['album']))
     $album = $_GET['album'];
  Else
     $album = "";

  // Properties
  $headline = "";
  $subheadline = "";
  $showroomwidth = 500;
  $showdesc = 1;

  // Headline
  Print ("<div align=center>");

  // Index
  if ($album == "" && $filehandle = opendir("."))
  {
    print("<table>");
    while (false !== ($albumcheck = readdir($filehandle)))
    {
      if ($albumcheck != "." && $albumcheck != ".." && is_dir($albumcheck) && substr($albumcheck,0,1) != "_")
      {
      	$albums[] = $albumcheck;
      }
    }

    closedir($filehandle);
    natcasesort($albums);

    foreach ($albums as $album)
    {
        if (file_exists("./$album/info.txt"))
           include("./$album/info.txt");
        else
        {
           $albumname = $album;
           $albuminfo = "";
        }

        print ("<tr><td width=$showroomwidth>");
        if (file_exists("./$album/thumbnail.jpg"))
           print ("<a href=\"galerie.php?album=$album\"><img border=1 class=albumtn src=\"$album/thumbnail.jpg\"></a>");
        print ("<p class=albuminfo><a href=\"galerie.php?album=$album\"><b>$albumname</b></a>");
        print ("<br>$albuminfo");
        print ("</p></td></tr>");
    }
    print("</table>");
  }

  // Creating the albums
  else
  {
    if(is_dir($album))
    {
      if (file_exists("./$album/info.txt"))
      {
      	include("./$album/info.txt");
      }
      else
      {
      	$albumname = $album;
         $albuminfo = "";
      }

      if (isset($_GET['show']))
         $show = $_GET['show'];
      else
      	$show = 1;
      $img_dir = "./$album";
      $dir = opendir($img_dir);
      $thumbstring = "|";

   // Reading and checking images in the folder of the album
      while ($file = readdir($dir))
      {
         if ($file != "." && $file != ".." && $file != "thumbnail.jpg")
         {
           $extension = substr($file, -4);
	  if(($extension == ".JPG") || ($extension == ".jpg"))
             $thumbstring .= "$file|";
         }
      }

      $thumbstring = trim($thumbstring, "|");
      $arry_txt = explode("|" , $thumbstring);
      (array)$temparray = null;
      natcasesort($arry_txt);
      $arry_txt = array_merge((array)$temparray, $arry_txt);

      if ($show > (sizeof($arry_txt)) || $show == "")
         $show = 1;
      if ($show < 1)
        $show = sizeof($arry_txt);

      $img = "" . $arry_txt[$show - 1] . "";

   // Setting the beginning and the end of the album
      if ($show == 0)
         $back = "<td width=75><font size=0><a href=\"galerie.php?album=$album&amp;show=" . (sizeof($arry_txt) - 1) . "\">back</a></font>";
      else
         $back = "<td width=75><font size=0><a href=\"galerie.php?album=$album&amp;show=" . ($show - 1) . "\">back</a></font>";
      if ($show == sizeof($arry_txt) - 1)
      	$forward = "<td width=75><font size=0><a title=forward href=\"galerie.php?album=$album&amp;show=1\">forward</a></font>";
      else
      	$forward = "<td width=75><font size=0><a title=forward href=\"galerie.php?album=$album&amp;show=" . ($show + 1) . "\">forward</a></font>";

   // Reading the images' width and adjusting the size of a cell
      $imgsize = (getimagesize(rtrim($album . "/" . $img)));
      $midtdsize = ($imgsize[0] - 162);
      if ($midtdsize < 370)   $midtdsize = 370;
      print("<table><tr><td colspan=3 width=" . ($midtdsize + 162) . "><p class=navigation>&nbsp;Kategorie:&nbsp;
             <a href=\"galerie.php?album=$album\"><b>$albumname</b></a></p>
             </td></tr></table>");
      print("<table class=\"linktd\"><tr>");
      print($back);
      print("</td><td width=\"" . $midtdsize . "\"><font size=\"0\"><b>");
      print("Image " . ($show) . " of " . (sizeof($arry_txt)));
      print("</b></font></td>");
      print($forward);
      print("</td></tr></table><table><tr>");
      print("<td colspan=3><a title=\"forward\" href=\"galerie.php?album=$album&amp;show=" . ($show + 1) . "\"><img border=0 src=\"" . $img_dir . "/" . $img . "\"></a></td>");
      print("</tr>");
      print("</table><table class=\"linktd\"><tr>");


   // Preview
      print("<tr><td colspan=3 valign=top height=116><div align=center><table><tr>");
      if (($show - 3) > 0)
         print("<td class=prevbtn><a href=\"galerie.php?album=$album&amp;show=" . ($show - 4) . "\"><br><<br><br><br><<br></a></td>");
      else  print("<td class=prevbtn>&nbsp;</td>");

      for ($i = -2; $i < 3; $i++)
      {
         if (!isset($arry_txt[$show + $i - 1]) || $arry_txt[$show + $i - 1] == null)
             $link = "&nbsp;";
         else
         {
            $imgsize = getimagesize(rtrim($album . "/" . ($arry_txt[$show + $i - 1])));
            if (($imgsize[0]) > ($imgsize[1]))
               $img  = "<img border=1 width=85 src=\"" . $img_dir . "/" . ($arry_txt[$show + $i - 1]) . "\">";
            else
               $img  = "<img border=1 height=80 src=\"" . $img_dir . "/" . ($arry_txt[$show + $i - 1]) . "\">";
            if ($i == 0)
               $link = "<a href=\"galerie.php?album=$album&amp;show=" . ($show) . "\">current<br>$img</a>";
            else
               $link = "<a href=\"galerie.php?album=$album&amp;show=" . ($show + $i) . "\">" . ($show + $i) . "/" . (sizeof($arry_txt)) . "<br>$img</a>";
         }
         print("<td class=previmg>");
         print($link);
         print("</td>");
      }

      if (($show + 4) < sizeof($arry_txt))
         print("<td class=prevbtn><a href=\"galerie.php?album=$album&amp;show=" . ($show + 4) . "\"><br>><br><br><br>><br></a></td>");
      else
      	print("<td class=prevbtn>&nbsp;</td>");
      print("</tr></table></div></td></tr></table>");
    }
  }
?>
 
Also wenn ich dort das Wort galerie einfüge. Erscheint folgender Fehler
PHP:
Warning: natcasesort(): The argument should be an array in /srv/www/web1/html/hosted/xxx/galerie/galerie.php on line 39

Warning: Invalid argument supplied for foreach() in /srv/www/web1/html/hosted/xxx/galerie/galerie.php on line 41

Es funktioniert auch nicht wenn ich ./galerie/ oder /galerie/ oder ./galerie benutze.
 
Sind denn überhaupt Unterordner in galerie? Denn eigentlich müsste es mit

PHP:
if ($album == "" && $filehandle = opendir("./galerie/"))

funktionieren.
 
Hier meine Korrektur:
PHP:
Hier meine Korrektur:

<?php
  if (isset($_GET['album']))
     $album = $_GET['album'];
  Else
     $album = "";

  // Properties
  $headline = "";
  $subheadline = "";
  $showroomwidth = 500;
  $showdesc = 1;

  // Headline
  Print ("<div align=center>");

  // Index
  $file = "./galerie/";
  if ($album == "" && $filehandle = opendir($file))
  {
    print("<table>");
    while (false !== ($albumcheck = readdir($filehandle)))
    {
      if ($albumcheck != "." && $albumcheck != ".." && is_dir($file.$albumcheck) && substr($albumcheck,0,1) != "_")
      {
          $albums[] = $albumcheck;
      }
    }

    closedir($filehandle);
    natcasesort($albums);

    foreach ($albums as $album)
    {
        if (file_exists("./$album/info.txt"))
           include("./$album/info.txt");
        else
        {
           $albumname = $album;
           $albuminfo = "";
        }

        print ("<tr><td width=$showroomwidth>");
        if (file_exists("./$album/thumbnail.jpg"))
           print ("<a href=\"".$file."galerie.php?album=$album\"><img border=1 class=albumtn src=\"$album/thumbnail.jpg\"></a>");
        print ("<p class=albuminfo><a href=\"".$file."galerie.php?album=$album\"><b>$albumname</b></a>");
        print ("<br>$albuminfo");
        print ("</p></td></tr>");
    }
    print("</table>");
  }

//Achte bitte darauf wie ich es bereits vorgemacht habe im Rest des Code die URL bei galerie.php entsprechend anzupassen.
//den Rest des Code
 
Zuletzt bearbeitet:
Zurück