
19/01/2008, 17:18
|
| | Fecha de Ingreso: enero-2008
Mensajes: 2
Antigüedad: 17 años, 1 mes Puntos: 0 | |
porque me dice: "Warning: is dir()..." Hola tengo un problema como un script y no sé como resolverlo.
El caso es que quiero mostrar unas imagenes thumbnails para posteriormente verlas . Todo me sale bien sólo que me da un Warning y no sé porque, el Warning dice así: Warning: is_dir() [function.is-dir]: open_basedir restriction in effect. File(./..) is not within the allowed path(s): (/var/www/vhosts/dominio.com/httpdocs:/tmp) in /var/www/vhosts/dominio.com/httpdocs/galleryflash.php on line 151
Código:
<?php
// Root directory
$root_dir = ".";
// Thumbnail Columns
$columns = 6;
// Maximal size of thumbnails in pixel
$thumbwidth = 100;
// Slideshow 0=no 1=yes
$slideshow = 0;
// --end editable region
?>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="author" content="Thomas Holtkötter">
<meta name="keywords" content="EasyGallery, WingNut, projects, wingnut.net.ms">
<style type="text/css">
BODY{margin: 0 auto;}
*{margin:0;padding:0;}
.error{margin-left:8px;background-color:#999;width:100%;height:40px;font-family: Verdana, Arial, Helvetica, sans-serif;font-size:11px;font-weight:bold;}
.select {font-family: Verdana, Arial, Helvetica, sans-serif;font-size:11px;font-weight:bold;color:#666;margin-left:8px;margin-top:8px;border: 0px;}
.thumbnails{background-color:#FFF;border:#fff 2px solid;}
</style>
<script type="text/javascript" language="javascript" src="lytebox/lytebox.js"></script>
<link rel="stylesheet" href="lytebox/lytebox.css" type="text/css" media="screen" />
<?php
// --Comenzar preprocesamiento
$phpself = $_SERVER['PHP_SELF'];
// tipos de archivos
$filetypes = array("gif", "GIF", "jpg", "JPG");
$k = sizeof($filetypes);
for ($i=0; $i<$k; $i++)
{
$filetypes[] = strtoupper($filetypes[$i]); //strtoupper convierte a mayusculas todos los elementos del array filetypes
}
// extraer imagenes de la carpeta local
if (strpos($root_dir,'www')===0)
{
$root_dir = 'http://'.$root_dir;
}
$local = parse_url($root_dir);//procesamos la url de "$root_dir" y la dividimos en partes dentro de un array que se llamará local
if (strpos($root_dir,'http://')===0)
{
foreach (count_chars($phpself,1) as $i=>$val)//cuenta los caracteres de la ruta y los comprueba
{
if (chr($i)=='/')//Si encontramos un subdirectorio
{
$root_dir = substr($local['path'],1);//guardamos en $root_dir toda la ruta
for ($j=1;$j<$val;$j++)
$root_dir='../'.$root_dir;
}
}
if (strpos($root_dir,$local['path'])===0)
{
$root_dir = ".";
}
}
// Escaneo del directorio para ver las carpetas y comprobar si contienen archivos de imagen
if (!is_dir($root_dir))//si $root_dir no es un directorio-ERROR
{
echo "<div align='center' class=\"error\">";
echo "<span class=\"content\"><br>ERROR: folder not found.</span>";
echo "</div>";
exit();
}
$root_handle = opendir($root_dir);
while ($dirname = readdir($root_handle))
{
if ($dirname!='system'){
// strcmp(a,b) Comparacion de cadenas,
// Devuelve < 0 si cadena a es menor que cadena b;
// > 0 si cadena a es mayor que cadena b
// y 0 si son iguales.
$var1 = strcmp($dirname,'.');
$var2 = strcmp($dirname,'..');
line 151 $var3 = is_dir($root_dir.'/'.$dirname);
if (($var1!=0) && ($var2!=0) && ($var3==1))
{
$dir_handle = opendir($root_dir.'/'.$dirname);
$postmp = 0;
while ($filename = readdir($dir_handle))
{
for ($i=0;$i<sizeof($filetypes);$i++)
{
$postmp = strpos($filename, $filetypes[$i]);
if ($postmp>0)
{
$folders[] = $root_dir.'/'.$dirname;
break 2;
}
}
}
closedir($dir_handle);
}
}
}
if (!$folders)
{
echo "<div class=\"error\">";
echo "<span class=\"content\"><br>ERROR: Searched folders don't contain any image! Please change the \$root_dir.</span>";
echo "</div>";
exit();
}
$ordner = $ref;
// Exploración de los directorios de archivos de imagen
if (is_dir($ordner)){
$dir_handle = opendir($ordner);
while ($filename = readdir($dir_handle))
{
for ($i=0; $i<sizeof($filetypes); $i++)
{
$pos = strpos($filename, $filetypes[$i]);
$var1 = strcmp($filename,'.');
$var2 = strcmp($filename,'..');
$var3 = is_file($ordner.'/'.$filename);
if (($var1 != 0) && ($var2 != 0) && ($var3 == 1) && ($pos > 0))
{
$files[] = $filename;
}
if ($filename=="thumbnails")
{
$thumbs = 1;
}
}
}
sort($files);
$size = sizeof($files);
closedir($dir_handle);
closedir($root_handle);
}
else
{
echo "<div class=\"error\">";
echo "<span class=\"content\"><br>ERROR: folder not found.</span>";
echo "</div>";
exit();
}
?>
<?php
$xpos=8;
$ypos=6;
$count = 0;
$newthumbs = false;
$divheight = ceil(count($files)/$columns) * ($thumbwidth+6) + 6;
echo "<table height=$divheight width=100% cellspacing=0 cellpadding=0 ><tr valign=top><td>\n";
for ($y=0;$y<count($files);$y++)
{
$tn_src = $ordner."/thumbnails/".$files[$count];
if (file_exists($tn_src))
{
$image = GetImageSize($tn_src);
if ($image[0]==$image[1]){}
elseif ($image[0]<$image[1]) $xpos += intval(($image[1]-$image[0])/2);
else $ypos += intval(($image[0]-$image[1])/2);
echo "<div id=\"livethumbnail\" style=\"left:".$xpos."px; top:".$ypos."px; position:relative; zindex:1;\">";
if($slideshow!=1){
echo "<a href=\"".$ordner."/".$files[$count]."\" rel=lytebox[".$ordner."]>";
}
else{
echo "<a href=\"".$ordner."/".$files[$count]."\" rel=lyteshow[".$ordner."]>";
}
echo "<img src=\"$tn_src\" class=\"thumbnails\" alt=\"$files[$count]\" style=\"width:$image[0]; height:$image[1]; left:0px; top:0px; position:absolute;\"></a></div>\n";
if ($image[0]==$image[1]){}
elseif ($image[0]<$image[1]) $xpos -= intval(($image[1]-$image[0])/2);
else $ypos -= intval(($image[0]-$image[1])/2);
}
else
{
$modules = get_loaded_extensions();
if(!in_array("gd", $modules)){
echo "<div class=\"error\">";
echo "<span class=\"content\"><br>Your Webserver doesn't provide the GD library, which is required to create thumbnails. Please create and add your thumbnails manually.</span>";
echo "</div>";
exit();
}
if(createthumb($ordner,$files[$count],$thumbwidth))
{
echo "$files[$count] created.<br>";
$newthumbs = true;
}
else
{
echo "<div class=\"error\">";
echo "<span class=\"content\"><br>Thumbnail Creation failed.</span>";
echo "</div>";
exit();
}
}
$count++;
if($count%$columns==0)
{
$ypos += $thumbwidth+6;
$xpos = 8;
}
else
{
$xpos += $thumbwidth+6;
}
}
if($newthumbs)
{
echo "<script>location.reload()</script>";
}
echo "</td></tr></table>\n";
//echo '<p><a href=http://www.palacesestateagency.com/index.php style=margin-left:8px>Go to home</a></p>';
// dont even think about removing this link!
echo "\n</body>";
//Funcion para crear los thumbnails
function createthumb($name,$file,$maxsize)
{
list($width, $height) = getimagesize("$name/$file");
$width = min($width, $height);
$tn = imagecreatetruecolor($maxsize, $maxsize);
$image = imagecreatefromgif("$name/$file");
imagecopyresampled($tn, $image, 0, 0, 0, 0, $maxsize, $maxsize, $width, $width);
imagegif($tn, "$name/thumbnails/$file", 70);
return true;
}
?>
Por favor ayudadme
por si sirve de algo, en mi PC con el xammp me funciona bien pero al subirlo me da el error. GRACIAS
Última edición por rmlesly; 19/01/2008 a las 17:33 |