Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Kuva listaus

Aceman87 [02.08.2003 02:30:42]

#

Joo, on hiukan ongelmia tämmösen koodin kanssa:

//index.php

<?php
  /*  Copyright Evolius // Jouni kuusisto
  *  Älä muokkaa hirveesti :P
  *
  *  Ohjeet:
  *  Eli koodi tekee listaa samassa kansiossa olevista
  *  kuvistaja tulostaa thumbnailit, uudet tallennetaan
  *  thumbs/ kansioon jolle on annettava kirjoitus oikeudet.
  *  (chmod 777 vaikka jos ei hallitse ;)
  *  Niin ja btw, Koodi tarvitsee GD2 ;P
  */

//Muokattavat:
// Montako kuvaa listataan per sivu:
$listaa = 20;
// Sivun Otsikko
$otsikko = ".:Nordic-Anime Gallery:.";

// Älä koske täst eteepäi. ok?


// Tän repäsin jostai vanhsta koodista ohimennen.. iha vaa copypastee ;)
function get_file_type($filename) {
  ereg( ".*\.([a-zA-z0-9]{0,5})$", $filename, $regs );
  $f_ext = $regs[1];
  $types['image'] = array ('jpg', 'png', 'gif');
  foreach ($types as $k => $v) {
    if (in_array($f_ext, $v)) {
      return $k;
      break;
    }
  }
  return 'unkown';
}

// Printataan sivun alku
print '<html>
<table cellspacing="0" cellpadding="0" align="center" width="600">
<tr><td width="600">
<h1>'.$otsikko.'</h1>
</td></tr>
<tr><td width="600">';

// Katsotaanko haluaako käyttäjä katsoa kuvaa
if(isset($_GET['show'])) {
  $file = $_GET['show'];
  $i = 0;
  $d='/mbnet/n/nanime/gallery/';
  clearstatcache();
  if($a = @opendir($d)) {
    while($b = readdir($a)) {
      if((is_file($d.$b)) && (get_file_type($d.$b) == 'image')) {
        if(get_file_type($d.$b) == 'image') {
          if($i == $file) {
            $kuva = $b;
          }
          $i++;
        }
      }
    }
    closedir($a);
  }
  print '<p>'.$kuva.'<hr><center><br><img src="/nanime/gallery/'.$kuva.'" class="img"><p align="right">';

  if($file != 0) {
    $takas = $file-1;
    print "<a href=\"?show=$takas\"><- Previous Image</a>";
  }
  print " :: ";
  if($file != $i-1) {
    $etee = $file+1;
    print "<a href=\"?show=$etee\">Next Image -></a>";
  }

  print '<hr></td></tr>';
}
// Muuten listataan kuvat
else {
  if(isset($_GET['list'])) { $mista = $_GET['list']; }
  else { $mista = 0; }
  $mihin = $mista+$listaa;

  print '<p>Images '.$mista.'-'.$mihin.'<hr>';

  $i = 0;
  $d='/mbnet/n/nanime/gallery/';
  clearstatcache();
  if($a = @opendir($d)) {
    while($b = readdir($a)) {
      if((is_file($d.$b)) && (get_file_type($d.$b) == 'image')) {
        if(($i >= $mista) && ($i < $mihin)) {
          $stdimg = 'border="0" width="112" height="112" hspace="4" vspace="4"';
          print "<a href=\"?show=$i\"><img src=\"thumb.php?$b\" alt=\"$b\" $stdimg></a>";
        }
        $i++;
      }
    }
    closedir($a);
  } else {
    echo 'Kansioon ei ole oikeutta';
  }
  print '<p align="right">';

  if($mista != 0) {
    $takas = $mista-$listaa;
    print "<a href=\"?list=$takas\"><- Previous Page</a>";
  }
  print " :: ";
  if($mihin <= $i) {
    print "<a href=\"?list=$mihin\">Next Page -></a>";
  }


  print '<hr></td></tr>';
}
?>

//thumb.php

<?php

  /*  Copyright Evolius // Jouni kuusisto
  *  Täältä voit muokata vainthumbien värit
  */

define (VERSION, "1.1");
$font = 1;
$d = '/mbnet/n/nanime/gallery/';

function pngThumbnail($file) {
  global $font;
  global $d;

  // Tästä voit muokata värit jos osaat :P
  if (function_exists('imagecreatetruecolor')) {
    $im = imagecreatetruecolor(112, 112);
    $white = imagecolorclosest ( $im, 0, 0, 0);
    $frame = imagecolorclosest ( $im, 255, 255, 255);
    $black = imagecolorclosest ( $im, 255, 255, 255);
  } else {
    $im = imagecreate(112, 112);
    $white = imagecolorclosest ( $im, 0, 0, 0);
    $frame = imagecolorclosest ( $im, 255, 255, 255);
    $black = imagecolorclosest ( $im, 255, 255, 255);
  }
  imagefilledrectangle ( $im, 0, 0, 112, 112, $white);

  $size = @getimagesize($d.$file);
  $name = ereg_replace('(.*)\.[^\.]*$', '\1', $file);
  switch($size[2]) {
    case 2:
      $si = imagecreatefromjpeg($d.$file);
      break;
    case 3:
      $si = imagecreatefrompng($d.$file);
      break;
    case 1:
      if (function_exists('imagecreatefromgif')){
        $si = imagecreatefromgif($d.$file);
        break;
      }
    default:
      die;
  }
  $im_w = $size[0];
  $im_h = $size[1];
  if ( $im_w > $im_h ) {
    $dx = 9;
    $dw = 94;
    $dh = floor(94 * $im_h/$im_w);
    $dy = floor((96 - $dh)/2);
  } else {
    $dy = 1;
    $dh = 94;
    $dw = floor(94 * $im_w/$im_h);
    $dx = floor((112 - $dw)/2);
  }
  if (function_exists('imagecopyresampled')) {
    imagecopyresampled( $im, $si, $dx, $dy, 0, 0, $dw, $dh, $im_w, $im_h);
  } else {
  imagecopyresized( $im, $si, $dx, $dy, 0, 0, $dw, $dh, $im_w, $im_h);
  }
  imagerectangle ( $im, 8, 0, 103, 95, $frame);
  $px = (112 - imagefontwidth($font) * strlen($name)) / 2;
  if ($px < 0) $px = 0;
  imagestring($im, $font, $px, 98, $name, $black);

  imageinterlace($im, 1);
  imagepng($im);
  imagepng($im, 'thumbs/'.$file);
  imagedestroy($im);
  imagedestroy($si);
  exit();
}

// Tulostus alkaa
if (isset($_SERVER['QUERY_STRING']) && ($_SERVER['QUERY_STRING'] !== '')) {
  $file = $_SERVER['QUERY_STRING'];
  $regs = array();
  while (ereg('%[0-9]{2}', $file, $regs)) {
    $file = str_replace($regs[0], chr(hexdec($regs[0])), $file);
  }
  $file = str_replace('/', '', $file);
  if(is_file('thumbs/'.$file)) {
    $im = imagecreatefrompng('thumbs/'.$file);
    imagepng ($im);
    exit();
        }
  elseif (is_readable($d.$file)) {
    pngThumbnail($file);
    exit();
  }
}
exit();
?>

Aceman87 [02.08.2003 02:34:23]

#

Kyseinen koodi siis tuottaa nyt tällaisen tuloksen (kun ensin sain safe mode ongelmat slvitettyä):

http://koti.mbnet.fi/nanime/index.php?page=art

Kuten näkyy ei kuvaa näy, syystä taikka toisesta.
Kansiot on chmodattu 777 ja kuva toimii suorasta linkistä.

Servu antaa tällaisen koodin selaimelle:

<html>
<table cellspacing="0" cellpadding="0" align="center" width="600">
<tr><td width="600">
<h1>.:Nordic-Anime Gallery:.</h1>
</td></tr>
<tr><td width="600"><p>Images 0-20<hr><a href="?show=0"><img src="thumb.php?PTCO2-final.jpg" alt="PTCO2-final.jpg" border="0" width="112" height="112" hspace="4" vspace="4"></a><p align="right"> :: <hr></td></tr>

Kiitos, jos joku viitsii auttaa

Blaze [02.08.2003 11:29:07]

#

lainaus:

Kuten näkyy ei kuvaa näy, syystä taikka toisesta.

[blaze@sakura2 blaze]$ lynx -head -dump http://koti.mbnet.fi/nanime/thumb.php?PTCO2-final.jpg
HTTP/1.1 404 Not Found
Date: Sat, 02 Aug 2003 08:24:20 GMT
Server: Apache
Connection: close
Content-Type: text/html

Baka.

lainaus:

Kansiot on chmodattu 777

<pet peeve>Hakemistot</pet peeve>

trinit [02.08.2003 12:21:47]

#

lainaus:

Kuten näkyy ei kuvaa näy, syystä taikka toisesta.
Kansiot on chmodattu 777 ja kuva toimii suorasta linkistä.

Oletko varma, että index.php?page=art sivulle tuleva kuva näytetään /gallery/thumbs hakemistosta? Kys. hakemistossa on kyllä se kuva on, mutta onko linkki oikein siihen kuvaan em. osoitteessa?

PS. Kooditagit käyttöön! https://www.ohjelmointiputka.net/ohje.php?tunnus­=kohjeet

Ämppi [02.08.2003 19:14:46]

#

Oftopic: ei millään pahalla, mutta näköjään täällä ei ole ollut keskusteluja. Kerta tuo juttu on ollut tuossa sivupalkissa kokopäivän.

Aceman87 [03.08.2003 04:54:26]

#

Sorsa siis etsii kuvaa täältä:
http://koti.mbnet.fi/nanime/thumb.php?PTCO2-final.jpg
kun sen pitäisi etsiä täältä:
http://koti.mbnet.fi/nanime/gallery/thumb/PTCO2-final.jpg

Mutta iso kysymys on MIKSI ?

(Sorry että jäi se koodiphp pois, mutta ei anna editoida)

trinit [03.08.2003 10:36:25]

#

lainaus:

Mutta iso kysymys on MIKSI ?

thumb.php tiedostossa on nyt rivi tuolla "Tulostus alkaa" kommentin jälkeen:

$file = $_SERVER['QUERY_STRING'];

niin eikö sen pitäisi olla

$file = "thumbs/" . $_SERVER['QUERY_STRING'];

edit: varmaksi en mene sanomaan tuota, mutta vähän vaikuttaisi siltä

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta