Witam
Sciagnalem sobie skrypt galerii. Potrzebuje czegos bardzo prostego. Galeria sklada sie z dwoch plikow: index.php oraz graph.php
index.php
<?php
/*****************************************************************************
* Skrypt galerii v1.0 *
* Autor: Błażej Gruszka "Sn!pe" *
* Date: 2006-01-04 *
* www.snipe.ekipa.be *
* www.ekipa.be *
* *
* Skrypt potrzebuje biblioteki GD aby dzialal poprawnie *
* Opisy powinny znajdowac sie w pliku images.txt w danym katalogu, *
* w osobnych linijkach w formacie: obrazek1.jpg|Jakis opis do obrazka *
* *
* Jesli chcesz uzywac tego skryptu zostaw maly buttonik na stronie *
* z adresem do strony domowej autora *
******************************************************************************/
// funkcja pokazuje katalogi
function show_img_folders()
{
while(false !== ($img_dir = readdir($dp))) {
/*if($img_dir!='.' && $img_dir!='..')*/
if(is_dir($img_dir)) echo '<a href="?dir='.$img_dir.'">'.$img_dir.'</a><br />'; }
}
// funkcja pobiera obrazki z katalogu
function get_images($dir)
{
// tablica z roszerzeniami ktore bedzie obslugiwac nasza galeria
$extensions = array('jpg','jpeg','gif','png','bmp');
// ladujemy obrazki
while(false !== ($image = readdir($dp))) {
if($image != '.' && $image != '..')
{
$images[] = $image;
}
}
return $images;
}
// funkcja pobiera opisy
function get_desc($dir)
{
// otwieramy plik z opisami
$file = 'images.txt';
{
$dp = fopen($dir.$file, 'r'); {
$desc = fgets($dp); // zczytujemy linijke z opisem $desc_exp[] = explode('|',$desc); // rozbijamy z formatu: obrazek.jpg|jakis opis }
return $desc_exp; // zwracamy tablice
} else die('<font color="red">Stworz plik: "images.txt" w katalogu: <b>'.$dir.'</b></font>'); }
if(isset($_GET['dir'])) // sprawdzamy czy ustawiono zmienna $_GET {
if(is_dir($_GET['dir'])) // sprawdzamy czy istnieje katalog {
$dir = $_GET['dir'].'/'; // katalog z fotkami
$images = get_images($dir); // pobieramy do zmiennej nazwy obrazkow
$descriptions = get_desc($dir); // pobieramy do zmiennej opisy
$col = 4; // ilosc kolumn obrazkow
// sprawdzamy czy tablica zawiera jakies nazwy obrazkow
if(count($images) == 0
) die('Nie znaleziono plikow graficznych');
// wyswietlamy wszystko
echo '<table align="center" style="border: 1px solid #000000"><tr><td colspan="'.$col.'"><b>'.$dir.'</b></td></tr><tr>'; foreach($images as $img)
{
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">'; foreach($descriptions as $desc)
{
if($desc[0
]==$img) echo $desc[1
]; }
echo '</td></tr></table>'; $i++;
if($i==$col) // jesli $i = liczbie kolumn, tworzymy nowy wiersz
{
$i=0;
}
}
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>'; } else echo 'Katalog nie istnieje'; } else show_img_folders(); // pokazujemy katalogi
?>
graph.php
<?
// File and new size
$filename = $_GET['img_name'];
$percent = 1;
// Content type
header('Content-type: image/jpeg');
// Get new sizes
$newwidth = $width * $percent;
$newheight = $height * $percent;
// Load
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);
// Resize
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
// Output
imagejpeg($thumb);
?>
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
<? 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" ) :
<?php
// funkcja pokazuje katalogi
function show_img_folders()
{
$dp = opendir('/php/galeria/'); <- wydaje mi sie ze wlasnie tutaj musze zmienic ta sciezke
. Niestety to nie dziala
. while(false !== ($img_dir = readdir($dp))) {
/*if($img_dir!='.' && $img_dir!='..')*/
if(is_dir($img_dir)) echo '<a href="?dir='.$img_dir.'">'.$img_dir.'</a><br />'; }
}
?>
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.
P.S nie wiem czy to potrzebne ale napisze:
php 4
Safemode:on (i off tez nie dziala)