All pastes #552630 Raw Edit

Kjetil

public php v1 · immutable
·published 2007-06-09 11:51 UTC
rendered paste body
<?include("header.php");echo "</div></div>";$image_regex = '/\.(jpg|jpeg)$/i'; // Regulært uttrykk for å matche jpg-bilder$index_regex = '/^index\.html$/i';  // Regulært uttrykk for å matche index-filen$oppdrag_dir = 'oppdrag/';// maks bredde og høyde på thumbnails$max_w = 60;$max_h = 63;// vis galleri i mappen $directoryfunction show_gallery ($directory) {  show_index ($directory);  echo "<div id=bildegalleri>";  //echo "<div id=mainimage>";  show_first ($directory, $_GET["file"]);  //echo "</div>";  echo "<div id=\"thumbs\">";  show_thumbnails ($directory);  echo "</div>";  echo "</div>";  }function check_path ($path) {  if ((strpos ($path, "../") === false) &&      (strpos ($path, "/") !== 0))     return true;  return false;  }function show_index ($directory) {  global $index_regex;  global $oppdrag_dir;    $side = $_GET['s'];  // Inkluder $side hvis den finnes, ellers let etter index.html i   // gallerikatalogen  if ($side && check_path($side) && !strpos($side, "/")) {    include ($oppdrag_dir . $side);    return;  }  // Sjekk om katalogen finnes og at den er en katalog  if (is_dir($directory)) {    // Åpne katalogen    if ($dh = opendir($directory)) {      // Les filer helt til vi finner en bildefil      while (($file = readdir($dh)) !== false) {        if (preg_match ($index_regex, $file)) {          echo "<div id=\"tekst\">";          include ($directory ."/". $file);          echo "</div>";        }      }    }  }}// vis "hovedbildet" (det første i fillistingen) i mappen $directory// (eller søk etter og bruk $filename hvis den er satt)function show_first ($directory, $filename="") {  global $image_regex;  // Sjekk om katalogen finnes og at den er en katalog  if (is_dir($directory)) {    // Åpne katalogen    if ($dh = opendir($directory)) {      // Les filer helt til vi finner en bildefil      while (($file = readdir($dh)) !== false) {      if (preg_match ($image_regex, $file)) {        if (!$filename || $filename == $file) {            echo "<img class=\"bilde_ramme\" src=\"$directory/$file\" alt=\"$directory\"/>";            return;        }      }      }    }  }}// vis thumbnails i en mappe (lag dem hvis de ikke finnes)function show_thumbnails ($directory) {  global $image_regex, $thumb_script, $index_regex;  $start = (int)$_GET['start'];  $max = $start + 18; // forandre antall bilder per side her  $nesteforrige = "";    // Les mappe  if (is_dir($directory)) {    if ($dh = opendir($directory)) {      if (!is_dir ($directory ."/thumbs"))    mkdir ($directory ."/thumbs");      $first_image = true;      $counter = 0;            while (($file = readdir($dh)) !== false) {                 if (preg_match ($image_regex, $file)) {          $counter++;        if ($counter <= $start)          continue;                if ($counter > $max) {          $new_uri = $SCRIPT_NAME . "?";          $new_uri .= 'dir=' . $_GET['dir'];          if ($_GET['file'])  $new_uri .= '&file=' . $_GET['file'];          if ($_GET['s'])     $new_uri .= '&s=' . $_GET['s'];          $new_uri .= '&start=' . ($start + 18);                  $nesteforrige .= '<a href="'.$new_uri.'" class="p">Neste</a>';          break;        }        // Sjekk om thumbnail eksisterer        if (!file_exists ($directory."/thumbs/".$file))            gen_thumb ("$directory/$file", $directory."/thumbs/".$file);        echo "<span>";        echo "<a href=\"galleri.php?dir=$directory&s=".$_GET['s']."&file=$file&start=$start\">\n\t";        echo "<img class=\"thumb_ramme\" onmouseover=\"this.className='thumb_ramme_orange'\"".               "onmouseout=\"this.className='thumb_ramme'\"".               "src=\"".$directory."/thumbs/".$file."\" alt=\"$file\"/>\n";         echo "</a></span>\n\n";                if(($counter % 3) == 0) {          echo "<br />";        }       }     }      if ($start > 0) {       $new_uri = $SCRIPT_NAME . "?";       $new_uri .= 'dir=' . $_GET['dir'];       if ($_GET['file'])  $new_uri .= '&file=' . $_GET['file'];       if ($_GET['s'])     $new_uri .= '&s=' . $_GET['s'];       $new_uri .= '&start=' . ($start - 18);       	   $nesteforrige = '<a href="'.$new_uri.'">Forrige</a> ' . $nesteforrige;     }     echo "<p>$nesteforrige</p>";   closedir($dh);  } }}// Genererer thumbnail av $from_file og lagrer den i $to_file. Antar// at alle bildene er jpg-bilderfunction gen_thumb ($from_file, $to_file) {  global $max_w, $max_h;  $image = imagecreatefromJPEG ($from_file);  $w = imageSX ($image);  $h = imageSY ($image);  // Den minste av disse er aspektet man skal bruke  $aspect_x = $max_w / $w;  $aspect_y = $max_h / $h;  $aspect = ($aspect_x < $aspect_y) ? $aspect_x : $aspect_y;  // Lage kvadratiske thumbnails => driter i høyde/bredde-ting :)  $new_w = 60; // $aspect * $w;  $new_h = 60; // $aspect * $h;  $offset_top = 0;  $offset_left = 0;  // Finn offset for å sentrere bildene :)  if ($h > $w) {    $offset_top = ($h-$w)/2;    $h = $w;  }  else {    $offset_left = ($w-$h)/2;    $w = $h;  }  $to_image = ImageCreateTrueColor($new_w, $new_h);  imagecopyresampled (                $to_image,               $image,               0, 0,               $offset_left,               $offset_top,               $new_w,               $new_h,               $w, $h );   imagejpeg ($to_image, $to_file);  imagedestroy ($image);  imagedestroy ($to_image);}//// Dette kan fjernes eller puttes i en annen fil//$directory = $_GET['dir'];$filename =  $_GET['file'];// VIKTIG!// ~~~~~~~// Denne testen er viktig å ha med, ellers kan folk begynne å snoke// rundt i mapper de ikke skal snoke rundt i.if (!check_path ($directory) || !check_path($filename))  {    echo "<p class=\"warning\">Error: ugyldig gallerinavn eller filnavn</p>";  } else   {     show_gallery ($directory);   }include("footer.php");?>