Witam

Sciagnalem sobie skrypt galerii. Potrzebuje czegos bardzo prostego. Galeria sklada sie z dwoch plikow: index.php oraz graph.php

index.php

  1. <?php
  2.  
  3.  
  4. /*****************************************************************************
  5. * Skrypt galerii v1.0  *
  6. * Autor: Błażej Gruszka "Sn!pe"  *
  7. * Date: 2006-01-04 *
  8. * www.snipe.ekipa.be *
  9. * www.ekipa.be *
  10. * *
  11. * Skrypt potrzebuje biblioteki GD aby dzialal poprawnie  *
  12. * Opisy powinny znajdowac sie w pliku images.txt w danym katalogu, *
  13. * w osobnych linijkach w formacie: obrazek1.jpg|Jakis opis do obrazka  *
  14. * *
  15. * Jesli chcesz uzywac tego skryptu zostaw maly buttonik na stronie *
  16. * z adresem do strony domowej autora *
  17. ******************************************************************************/
  18.  
  19. ob_start(gz_handler);
  20.  
  21. // funkcja pokazuje katalogi
  22. function show_img_folders()
  23. {
  24. $dp = opendir('/php/galeria/');
  25. while(false !== ($img_dir = readdir($dp)))
  26. { 
  27.  /*if($img_dir!='.' && $img_dir!='..')*/
  28. if(is_dir($img_dir)) echo '<a href="?dir='.$img_dir.'">'.$img_dir.'</a><br />';
  29. }
  30. }
  31.  
  32. // funkcja pobiera obrazki z katalogu
  33. function get_images($dir)
  34. {
  35. // tablica z roszerzeniami ktore bedzie obslugiwac nasza galeria
  36. $extensions = array('jpg','jpeg','gif','png','bmp');
  37.  
  38. // ladujemy obrazki
  39. $dp = opendir($dir);
  40. while(false !== ($image = readdir($dp)))
  41. {
  42. if($image != '.' && $image != '..')
  43. {
  44. $ext = explode('.', $image);
  45. if(in_array(strtolower($ext[1]), $extensions)) // sprawdzamy rozszerzenie
  46. $images[] = $image;
  47. }
  48. }
  49. return $images;
  50. }
  51.  
  52. // funkcja pobiera opisy
  53. function get_desc($dir)
  54. {
  55. // otwieramy plik z opisami
  56. $file = 'images.txt';
  57. if(file_exists($dir.$file))
  58. {
  59. $dp = fopen($dir.$file, 'r');
  60. while(!feof($dp))
  61. {
  62. $desc = fgets($dp); // zczytujemy linijke z opisem
  63. $desc_exp[] = explode('|',$desc); // rozbijamy z formatu: obrazek.jpg|jakis opis
  64. }
  65. fclose($dp); // zamykamy plik
  66. return $desc_exp; // zwracamy tablice
  67. } else die('<font color="red">Stworz plik: "images.txt" w katalogu: <b>'.$dir.'</b></font>');
  68. }
  69.  
  70.  
  71.  
  72. if(isset($_GET['dir'])) // sprawdzamy czy ustawiono zmienna $_GET
  73. {
  74. if(is_dir($_GET['dir'])) // sprawdzamy czy istnieje katalog
  75. {
  76. $dir = $_GET['dir'].'/'; // katalog z fotkami
  77. $images = get_images($dir); // pobieramy do zmiennej nazwy obrazkow
  78. $descriptions = get_desc($dir); // pobieramy do zmiennej opisy
  79.  
  80. $col = 4; // ilosc kolumn obrazkow
  81.  
  82. // sprawdzamy czy tablica zawiera jakies nazwy obrazkow
  83. if(count($images) == 0) die('Nie znaleziono plikow graficznych');
  84.  
  85. // wyswietlamy wszystko
  86. echo '<table align="center" style="border: 1px solid #000000"><tr><td colspan="'.$col.'"><b>'.$dir.'</b></td></tr><tr>';
  87. foreach($images as $img)
  88. {
  89. echo '<td align="center"><table><tr><td valign="top" align="center"><a href="'.$dir.$img.'" target="_blank"><img src="graph.php?img_name='.$dir.$img.'" hight=100 width=100 border="0"></a></td></td></tr><tr><td align="center">';
  90. foreach($descriptions as $desc)
  91. {
  92. if($desc[0]==$img) echo $desc[1];
  93. else echo '&nbsp;';
  94. }
  95. echo '</td></tr></table>';
  96. $i++;
  97. if($i==$col) // jesli $i = liczbie kolumn, tworzymy nowy wiersz
  98. {
  99. $i=0;
  100. echo '</tr><tr>';
  101. }
  102. }
  103. echo '</tr><tr><td colspan="'.$col.'"><a href="http://www.snipe.ekipa.be" target="_blank"><img src="logo.gif" border="0"></a></td></tr></table>';
  104. } else echo 'Katalog nie istnieje';
  105. } else show_img_folders(); // pokazujemy katalogi
  106. ?>


graph.php

  1. <?
  2. // File and new size
  3. $filename = $_GET['img_name'];
  4. $percent = 1;
  5.  
  6. // Content type
  7. header('Content-type: image/jpeg');
  8.  
  9. // Get new sizes
  10. list($width, $height) = getimagesize($filename);
  11. $newwidth = $width * $percent;
  12. $newheight = $height * $percent;
  13.  
  14. // Load
  15. $thumb = imagecreatetruecolor($newwidth, $newheight);
  16. $source = imagecreatefromjpeg($filename);
  17.  
  18. // Resize
  19. imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
  20.  
  21. // Output
  22. imagejpeg($thumb);
  23. ?>


Moja strona wyglada nastepujaco:
W katalogu glownym mam index.php <- to jest moja strona. galeria jest w "katalog_glowny -> php -> galeria"
W index.php (w katalogu glownym) robie
  1. <? include "php/galeria/index.php" ?> 
i teraz tutaj jest moj problem. galeria wyswietla mi foldery z glownego katalogu strony a nie z katalogu galerii. Chce zmienic sciezke (plik galerii "index.php" ) :
  1. <?php
  2.  
  3.  
  4. // funkcja pokazuje katalogi
  5. function show_img_folders()
  6. {
  7. $dp = opendir('/php/galeria/');  <- wydaje mi sie ze wlasnie tutaj musze zmienic ta sciezke. Niestety to nie dziala.
  8. while(false !== ($img_dir = readdir($dp)))
  9. { 
  10.  /*if($img_dir!='.' && $img_dir!='..')*/
  11. if(is_dir($img_dir)) echo '<a href="?dir='.$img_dir.'">'.$img_dir.'</a><br />';
  12. }
  13. }
  14. ?>


i wlasnie jak ta sciezke to albo nic mi nie pokazuje, tak jakby tam nie bylo folderow, albo wywala taki blad:
"Warning: opendir(): open_basedir restriction in effect. File(/galeria/) is not within the allowed path(s): (/home/gravis/:/usr/lib/php:/usr/local/lib/php:/tmp) in /home/gravis/public_html/galeria/index.php on line 23

Warning: opendir(/galeria/): failed to open dir: Operation not permitted in /home/gravis/public_html/galeria/index.php on line 23

Warning: readdir(): supplied argument is not a valid Directory resource in /home/gravis/public_html/galeria/index.php on line 24"

i jeszcze jedno, w oryginalnym skrypcie sciezka jest wpisana "./" - no ale tak byc nie moze bo ja nie chce zeby mi pokazywalo foldery z glownego katalogu.

Przepraszam ze tyle musialem pisac i takie to zawile, ale nie wiem jak inaczej to dokladnie wyjasnic. Mam nadzieje ze ktos mi pomoze. smile.gif

P.S nie wiem czy to potrzebne ale napisze:
php 4
Safemode:on (i off tez nie dziala)