Free Web Hosting Forum
Go Back   Free Web Hosting Forum > Website Building > Web Programming
Reload this Page Timthumb not displaying featured image
Reply
 
Thread Tools Display Modes
(#1 (permalink))
Old
Junior Member
chakri is on a distinguished road
 
Posts: 3
Join Date: Aug 2012
Default Timthumb not displaying featured image - 08-16-2012, 03:49 AM

Hi Friends,

I would like to know what is stopping my wordpress site not to display the thumbnail for featured image using timthumb script.

I have been researching in the internet from a long time and found couple of workarounds but in vain.

timthumb script from Ridhuan has partially solved my problem. I am able to see the thumbnail if I am logged in as admin to wordpress account. However, public view of the site wont display the image.

Please help me fix this problem as it is taking all my patience and time figuring out the cause.

Thanks in advance,
Chakradhar
Reply With Quote
Sponsored Links
(#2 (permalink))
Old
ShocK's Avatar
Senior Member
ShocK is on a distinguished road
 
Posts: 4,073
Join Date: Jul 2011
Location: UK
Default 08-16-2012, 06:00 AM

Hi, there's this written by an admin here - http://www.free-installations.info/t...host-com.4871/
Reply With Quote
(#3 (permalink))
Old
Junior Member
chakri is on a distinguished road
 
Posts: 3
Join Date: Aug 2012
Default 08-16-2012, 09:05 AM

Hi Shock,

Thanks for that pointer. however, after modifying the timthumb.php with exact path as mentioned did not yield positive result.

I am still unable to view the thumbnail. Any better workaround is much appreciated.

Thank you,
Chakradhar
Reply With Quote
(#4 (permalink))
Old
d3iti's Avatar
Super Moderator
d3iti is on a distinguished road
 
Posts: 6,489
Join Date: Jul 2009
Location: Spain
Default 08-16-2012, 07:08 PM

Hello,

You can try what grace1004 proposed in this message:
Code:
please change:

From: $_SERVER['DOCUMENT_ROOT']
To: dirname(__FILE__)


Recuerda realizar copias de seguridad de tus sitios web. Si este mensaje te ayudó puedes pulsar sobre el botón karma
Reply With Quote
(#5 (permalink))
Old
Junior Member
chakri is on a distinguished road
 
Posts: 3
Join Date: Aug 2012
Default 08-24-2012, 05:24 AM

I am still not able to see the thumbnails.

My observations:
1. timthumb definitely needs complete path
2. timthumb would display images only if you are logged in as admin to your wordpress account.
3. If you logout or open the site from a different PC, timthumb would not display the image still.
4. Changing the permissions to 777 or 755 did not fix the problem either.
5. At the status bar of the browser, i see that while loading the page, it displays "Waiting for error404.000webhost.com" and eventually loads the page without the featured image.

I am banging my head to the wall. Please help.

Thanks,
Chakradhar

Last edited by chakri; 08-24-2012 at 06:12 AM.
Reply With Quote
(#6 (permalink))
Old
d3iti's Avatar
Super Moderator
d3iti is on a distinguished road
 
Posts: 6,489
Join Date: Jul 2009
Location: Spain
Default 08-24-2012, 06:55 AM

Quote:
Originally Posted by chakri View Post
I am still not able to see the thumbnails.

My observations:
...
2. timthumb would display images only if you are logged in as admin to your wordpress account.
3. If you logout or open the site from a different PC, timthumb would not display the image still.
...
I think what you indicate in points 2 and 3 is not possible.

Note that each time you make any changes, we recommend that you clean the browser cache, so that your browser does not use the cache.

A link to the page with problems help solve the problem.


Recuerda realizar copias de seguridad de tus sitios web. Si este mensaje te ayudó puedes pulsar sobre el botón karma
Reply With Quote
(#7 (permalink))
Old
Senior Member
grace1004 is on a distinguished road
 
Posts: 733
Join Date: Dec 2010
Default 08-24-2012, 12:23 PM

When you upload an image file, you need to click "Use as featured image", and then click "Insert Into Post"
button (around the bottom of the image upload form). If the featured image is not displayed after having
done as explained above, please try the following timthumb.php file, which is divided into 3 parts. Due
to the plug-in problem of 000webhost.com forum, we cannot download attached files. Also, please
don't forget to change the permission of cache directory to 777.

First part
=======
PHP Code:
<?php
/**
 * TimThumb script created by Ben Gillbanks, originally created by Tim McDaniels and Darren Hoyt
 * http://code.google.com/p/timthumb/
 * 
 * GNU General Public License, version 2
 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
 *
 * Examples and documentation available on the project homepage
 * http://www.binarymoon.co.uk/projects/timthumb/
 */

define ('CACHE_SIZE'1000);                // number of files to store before clearing cache
define ('CACHE_CLEAR'20);                    // maximum number of files to delete on each cache clear
define ('CACHE_USE'TRUE);                    // use the cache files? (mostly for testing)
define ('VERSION''1.25');                    // version number (to force a cache refresh)
define ('DIRECTORY_CACHE''./cache');        // cache directory
define ('MAX_WIDTH'1500);                    // maximum image width
define ('MAX_HEIGHT'1500);                // maximum image height
define ('ALLOW_EXTERNAL'FALSE);            // allow external website (override security precaution - not advised!)
define ('MEMORY_LIMIT''30M');                // set PHP memory limit
define ('MAX_FILE_SIZE'1500000);            // file size limit to prevent possible DOS attacks (roughly 1.5 megabytes)
define ('CURL_TIMEOUT'10);                    // timeout duration. Tweak as you require (lower = better)

// external domains that are allowed to be displayed on your website
$allowedSites = array (
    
'flickr.com',
    
'picasa.com',
    
'blogger.com',
    
'wordpress.com',
    
'img.youtube.com',
    
'upload.wikimedia.org',
);

// STOP MODIFYING HERE!
// --------------------

// sort out image source
$src get_request ('src''');
if (
$src == '' || strlen ($src) <= 3) {
    
display_error ('no image specified');
}

// clean params before use
$src clean_source ($src);

// get mime type of src
$mime_type mime_type ($src);

// used for external websites only
$external_data_string '';

// generic file handle for reading and writing to files
$fh '';

// check to see if this image is in the cache already
// if already cached then display the image and die
check_cache ($mime_type);

// cache doesn't exist and then process everything
// check to see if GD function exist
if (!function_exists ('imagecreatetruecolor')) {
    
display_error ('GD Library Error: imagecreatetruecolor does not exist - please contact your webhost and ask them to install the GD library');
}

if (
function_exists ('imagefilter') && defined ('IMG_FILTER_NEGATE')) {
    
$imageFilters = array (
        
=> array (IMG_FILTER_NEGATE0),
        
=> array (IMG_FILTER_GRAYSCALE0),
        
=> array (IMG_FILTER_BRIGHTNESS1),
        
=> array (IMG_FILTER_CONTRAST1),
        
=> array (IMG_FILTER_COLORIZE4),
        
=> array (IMG_FILTER_EDGEDETECT0),
        
=> array (IMG_FILTER_EMBOSS0),
        
=> array (IMG_FILTER_GAUSSIAN_BLUR0),
        
=> array (IMG_FILTER_SELECTIVE_BLUR0),
        
10 => array (IMG_FILTER_MEAN_REMOVAL0),
        
11 => array (IMG_FILTER_SMOOTH0),
    );
}

// get standard input properties
$new_width =  (int) abs (get_request ('w'0));
$new_height = (int) abs (get_request ('h'0));
$zoom_crop = (int) get_request ('zc'1);
$quality = (int) abs (get_request ('q'90));
$align get_request ('a''c');
$filters get_request ('f''');
$sharpen = (bool) get_request ('s'0);

// set default width and height if neither are set already
if ($new_width == && $new_height == 0) {
    
$new_width 100;
    
$new_height 100;
}

// ensure size limits can not be abused
$new_width min ($new_widthMAX_WIDTH);
$new_height min ($new_heightMAX_HEIGHT);

// set memory limit to be able to have enough space to resize larger images
ini_set ('memory_limit'MEMORY_LIMIT);

if (
file_exists ($src)) {

    
// open the existing image
    
$image open_image ($mime_type$src);
    if (
$image === false) {
        
display_error ('Unable to open image : ' $src);
    }

    
// Get original width and height
    
$width imagesx ($image);
    
$height imagesy ($image);
    
$origin_x 0;
    
$origin_y 0;

    
// generate new w/h if not provided
    
if ($new_width && !$new_height) {
        
$new_height floor ($height * ($new_width $width));
    } else if (
$new_height && !$new_width) {
        
$new_width floor ($width * ($new_height $height));
    }

    
// scale down and add borders
    
if ($zoom_crop == 3) {

        
$final_height $height * ($new_width $width);

        if (
$final_height $new_height) {
            
$new_width $width * ($new_height $height);
        } else {
            
$new_height $final_height;
        }

    }

    
// create a new true color image
    
$canvas imagecreatetruecolor ($new_width$new_height);
    
imagealphablending ($canvasfalse);

    
// Create a new transparent color for image
    
$color imagecolorallocatealpha ($canvas000127);

    
// Completely fill the background of the new image with allocated color.
    
imagefill ($canvas00$color);

    
// scale down and add borders
    
if ($zoom_crop == 2) {

        
$final_height $height * ($new_width $width);
        
        if (
$final_height $new_height) {
            
            
$origin_x $new_width 2;
            
$new_width $width * ($new_height $height);
            
$origin_x round ($origin_x - ($new_width 2));

        } else {

            
$origin_y $new_height 2;
            
$new_height $final_height;
            
$origin_y round ($origin_y - ($new_height 2));

        }

    }

    
// Restore transparency blending
    
imagesavealpha ($canvastrue);

    if (
$zoom_crop 0) {

        
$src_x $src_y 0;
        
$src_w $width;
        
$src_h $height;

        
$cmp_x $width $new_width;
        
$cmp_y $height $new_height;

        
// calculate x or y coordinate and width or height of source
        
if ($cmp_x $cmp_y) {

            
$src_w round ($width $cmp_x $cmp_y);
            
$src_x round (($width - ($width $cmp_x $cmp_y)) / 2);

        } else if (
$cmp_y $cmp_x) {

            
$src_h round ($height $cmp_y $cmp_x);
            
$src_y round (($height - ($height $cmp_y $cmp_x)) / 2);

        }

        
// positional cropping!
        
switch ($align) {
            case 
't':
            case 
'tl':
            case 
'lt':
            case 
'tr':
            case 
'rt':
                
$src_y 0;
                break;

            case 
'b':
            case 
'bl':
            case 
'lb':
            case 
'br':
            case 
'rb':
                
$src_y $height $src_h;
                break;

            case 
'l':
            case 
'tl':
            case 
'lt':
            case 
'bl':
            case 
'lb':
                
$src_x 0;
                break;

            case 
'r':
            case 
'tr':
            case 
'rt':
            case 
'br':
            case 
'rb':
                
$src_x $width $new_width;
                
$src_x $width $src_w;
                break;

            default:
                break;
        }

        
imagecopyresampled ($canvas$image$origin_x$origin_y$src_x$src_y$new_width$new_height$src_w$src_h);

    } else {

        
// copy and resize part of an image with resampling
        
imagecopyresampled ($canvas$image0000$new_width$new_height$width$height);

    }

    if (
$filters != '' && function_exists ('imagefilter') && defined ('IMG_FILTER_NEGATE')) {
        
// apply filters to image
        
$filterList explode ('|'$filters);
        foreach (
$filterList as $fl) {

            
$filterSettings explode (','$fl);
            if (isset (
$imageFilters[$filterSettings[0]])) {

                for (
$i 0$i 4$i ++) {
                    if (!isset (
$filterSettings[$i])) {
                        
$filterSettings[$i] = null;
                    } else {
                        
$filterSettings[$i] = (int) $filterSettings[$i];
                    }
                }

                switch (
$imageFilters[$filterSettings[0]][1]) {

                    case 
1:

                        
imagefilter ($canvas$imageFilters[$filterSettings[0]][0], $filterSettings[1]);
                        break;

                    case 
2:

                        
imagefilter ($canvas$imageFilters[$filterSettings[0]][0], $filterSettings[1], $filterSettings[2]);
                        break;

                    case 
3:

                        
imagefilter ($canvas$imageFilters[$filterSettings[0]][0], $filterSettings[1], $filterSettings[2], $filterSettings[3]);
                        break;

                    case 
4:

                        
imagefilter ($canvas$imageFilters[$filterSettings[0]][0], $filterSettings[1], $filterSettings[2], $filterSettings[3], $filterSettings[4]);
                        break;

                    default:

                        
imagefilter ($canvas$imageFilters[$filterSettings[0]][0]);
                        break;

                }
            }
        }
    }

Last edited by grace1004; 08-24-2012 at 12:33 PM.
Reply With Quote
(#8 (permalink))
Old
Senior Member
grace1004 is on a distinguished road
 
Posts: 733
Join Date: Dec 2010
Default 08-24-2012, 12:24 PM

Second part
=========
PHP Code:
// sharpen image
    
if ($sharpen && function_exists ('imageconvolution')) {

        
$sharpenMatrix = array (
            array (-
1,-1,-1),
            array (-
1,16,-1),
            array (-
1,-1,-1),
        );

        
$divisor 8;
        
$offset 0;

        
imageconvolution ($canvas$sharpenMatrix$divisor$offset);

    }

    
// output image to browser based on mime type
    
show_image ($mime_type$canvas);

    
// remove image from memory
    
imagedestroy ($canvas);

    
// if not in cache then clear some space and generate a new file
    
clean_cache ();

    die ();

} else {

    if (
strlen ($src)) {
        
display_error ('image ' $src ' not found');
    } else {
        
display_error ('no source specified');
    }

}


/**
 *
 * @global <type> $quality
 * @param <type> $mime_type
 * @param <type> $image_resized 
 */
function show_image ($mime_type$image_resized) {

    global 
$quality;

    
$cache_file get_cache_file ($mime_type);

    if (
strpos ($mime_type'jpeg') > 1) {
        
imagejpeg ($image_resized$cache_file$quality);
    } else {
        
imagepng ($image_resized$cache_filefloor ($quality 0.09));
    }

    
show_cache_file ($mime_type);

}


/**
 *
 * @param <type> $property
 * @param <type> $default
 * @return <type> 
 */
function get_request ($property$default 0) {

    if (isset (
$_GET[$property])) {
        return 
$_GET[$property];
    } else {
        return 
$default;
    }

}


/**
 *
 * @param <type> $mime_type
 * @param <type> $src
 * @return <type>
 */
function open_image ($mime_type$src) {

    if (
strpos ($mime_type'jpeg') !== false) {
        
$image imagecreatefromjpeg ($src);
    } elseif (
strpos ($mime_type'png') !== false) {
        
$image imagecreatefrompng ($src);
    } elseif (
strpos ($mime_type'gif') !== false) {
        
$image imagecreatefromgif ($src);
    }

    return 
$image;

}

/**
 * clean out old files from the cache
 * you can change the number of files to store and to delete per loop in the defines at the top of the code
 *
 * @return <type>
 */
function clean_cache () {

    
// add an escape
    // Reduces the amount of cache clearing to save some processor speed
    
if (rand (150) > 10) {
        return 
true;
    }

    
flush ();

    
$files glob (DIRECTORY_CACHE '/*'GLOB_BRACE);

    if (
count ($files) > CACHE_SIZE) {
        
        
$yesterday time () - (24 60 60);

        
usort ($files'filemtime_compare');
        
$i 0;

        foreach (
$files as $file) {

            
$i ++;

            if (
$i >= CACHE_CLEAR) {
                return;
            }

            if (@
filemtime ($file) > $yesterday) {
                return;
            }

            if (
file_exists ($file)) {
                
unlink ($file);
            }

        }

    }

}


/**
 * compare the file time of two files
 *
 * @param <type> $a
 * @param <type> $b
 * @return <type>
 */
function filemtime_compare ($a$b) {

    
$break explode ('/'$_SERVER['SCRIPT_FILENAME']);
    
$filename $break[count ($break) - 1];
    
$filepath str_replace ($filename''$_SERVER['SCRIPT_FILENAME']);

    
$file_a realpath ($filepath $a);
    
$file_b realpath ($filepath $b);

    return 
filemtime ($file_a) - filemtime ($file_b);

}


/**
 * determine the file mime type
 *
 * @param <type> $file
 * @return <type>
 */
function mime_type ($file) {

    
$file_infos getimagesize ($file);
    
$mime_type $file_infos['mime'];

    
// no mime type
    
if (empty ($mime_type)) {
        
display_error ('no mime type specified');
    }

    
// use mime_type to determine mime type
    
if (!preg_match ("/jpg|jpeg|gif|png/i"$mime_type)) {
        
display_error ('Invalid src mime type: ' $mime_type);
    }

    return 
strtolower ($mime_type);

}


/**
 *
 * @param <type> $mime_type
 */
function check_cache ($mime_type) {

    if (
CACHE_USE) {

        if (!
show_cache_file ($mime_type)) {
            
// make sure cache dir exists
            
if (!file_exists (DIRECTORY_CACHE)) {
                
// give 777 permissions so that developer can overwrite
                // files created by web server user
                
mkdir (DIRECTORY_CACHE);
                
chmod (DIRECTORY_CACHE0777);
            }
        }

    }

}


/**
 *
 * @param <type> $mime_type
 * @return <type> 
 */
function show_cache_file ($mime_type) {

    
// use browser cache if available to speed up page load
    
if (isset ($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
        if (
strtotime ($_SERVER['HTTP_IF_MODIFIED_SINCE']) < strtotime('now')) {
            
header ('HTTP/1.1 304 Not Modified');
            die ();
        }
    }

    
$cache_file get_cache_file ($mime_type);

    if (
file_exists ($cache_file)) {

        
// change the modified headers
        
$gmdate_expires gmdate ('D, d M Y H:i:s'strtotime ('now +10 days')) . ' GMT';
        
$gmdate_modified gmdate ('D, d M Y H:i:s') . ' GMT';

        
// send content headers then display image
        
header ('Content-Type: ' $mime_type);
        
header ('Accept-Ranges: bytes');
        
header ('Last-Modified: ' $gmdate_modified);
        
header ('Content-Length: ' filesize ($cache_file));
        
header ('Cache-Control: max-age=864000, must-revalidate');
        
header ('Expires: ' $gmdate_expires);

        if (!@
readfile ($cache_file)) {
            
$content file_get_contents ($cache_file);
            if (
$content != FALSE) {
                echo 
$content;
            } else {
                
display_error ('cache file could not be loaded');
            }
        }

        die ();

    }

    return 
FALSE;

}


/**
 *
 * @staticvar string $cache_file
 * @param <type> $mime_type
 * @return string
 */
function get_cache_file ($mime_type) {

    static 
$cache_file;
    global 
$src;

    
$file_type '.png';

    if (
strpos ($mime_type'jpeg') > 1) {
        
$file_type '.jpg';
    }

    if (!
$cache_file) {
        
// filemtime is used to make sure updated files get recached
        
$cache_file DIRECTORY_CACHE '/' md5 ($_SERVER ['QUERY_STRING'] . VERSION filemtime ($src)) . $file_type;
    }

    return 
$cache_file;


Reply With Quote
(#9 (permalink))
Old
Senior Member
grace1004 is on a distinguished road
 
Posts: 733
Join Date: Dec 2010
Default 08-24-2012, 12:26 PM

Third part
=======
PHP Code:
/**
 *
 * @param <type> $url
 * @return <type> 
 */
function validate_url ($url) {
    
$pattern '/^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&amp;?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/';
    return 
preg_match ($pattern$url);
}


/**
 *
 * @global array $allowedSites
 * @param string $src
 * @return string
 */
function check_external ($src) {

    global 
$allowedSites;

    
// work out file details
    
$fileDetails pathinfo ($src);
    
$filename 'external_' md5 ($src);
    
$local_filepath DIRECTORY_CACHE '/' $filename '.' strtolower ($fileDetails['extension']);

    
// only do this stuff the file doesn't already exist
    
if (!file_exists ($local_filepath)) {

        if (
strpos (strtolower ($src), 'http://') !== false || strpos (strtolower ($src), 'https://') !== false) {

            if (!
validate_url ($src)) {
                
display_error ('invalid url');
            }

            
$url_info parse_url ($src);

            
// convert youtube video urls
            // need to tidy up the code

            
if ($url_info['host'] == 'www.youtube.com' || $url_info['host'] == 'youtube.com') {
                
parse_str ($url_info['query']);

                if (isset (
$v)) {
                    
$src 'http://img.youtube.com/vi/' $v '/0.jpg';
                    
$url_info['host'] = 'img.youtube.com';
                }
            }

            
// check allowed sites (if required)
            
if (ALLOW_EXTERNAL) {

                
$isAllowedSite true;

            } else {

                
$isAllowedSite false;
                foreach (
$allowedSites as $site) {
                    if (
strpos (strtolower ($url_info['host']), $site) !== false) {
                        
$isAllowedSite true;
                    }
                }

            }

            
// if allowed
            
if ($isAllowedSite) {

                if (
function_exists ('curl_init')) {

                    global 
$fh;

                    
$fh fopen ($local_filepath'w');
                    
$ch curl_init ($src);

                    
curl_setopt ($chCURLOPT_TIMEOUTCURL_TIMEOUT);
                    
curl_setopt ($chCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0');
                    
curl_setopt ($chCURLOPT_URL$src);
                    
curl_setopt ($chCURLOPT_RETURNTRANSFERTRUE);
                    
curl_setopt ($chCURLOPT_HEADER0);
                    
curl_setopt ($chCURLOPT_SSL_VERIFYPEERFALSE);
                    
curl_setopt ($chCURLOPT_FILE$fh);
                    
curl_setopt ($chCURLOPT_WRITEFUNCTION'curl_write');

                    
// error so die
                    
if (curl_exec ($ch) === FALSE) {
                        
unlink ($local_filepath);
                        
touch ($local_filepath);
                        
display_error ('error reading file ' $src ' from remote host: ' curl_error ($ch));
                    }

                    
curl_close ($ch);
                    
fclose ($fh);

                } else {

                    if (!
$img file_get_contents ($src)) {
                        
display_error ('remote file for ' $src ' can not be accessed. It is likely that the file permissions are restricted');
                    }

                    if (
file_put_contents ($local_filepath$img) == FALSE) {
                        
display_error ('error writing temporary file');
                    }

                }

                if (!
file_exists ($local_filepath)) {
                    
display_error ('local file for ' $src ' can not be created');
                }

                
$src $local_filepath;

            } else {

                
display_error ('remote host "' $url_info['host'] . '" not allowed');

            }

        }

    } else {

        
$src $local_filepath;

    }

    return 
$src;

}


/**
 * callback for curl command to receive external images
 * limit the amount of data downloaded from external servers
 * 
 * @global <type> $data_string
 * @param <type> $handle
 * @param <type> $data
 * @return <type>
 */
function curl_write ($handle$data) {

    global 
$external_data_string$fh;

    
fwrite ($fh$data);
    
$external_data_string .= $data;

    if (
strlen ($external_data_string) > MAX_FILE_SIZE) {
        return 
0;
    } else {
        return 
strlen ($data);
    }

}


/**
 * tidy up the image source url
 *
 * @param <type> $src
 * @return string
 */
function clean_source ($src) {

    
$host str_replace ('www.'''$_SERVER['HTTP_HOST']);
    
$regex "/^(http(s|):\/\/)(www\.|)" $host "\//i";

    
$src preg_replace ($regex''$src);
    
$src strip_tags ($src);
    
$src check_external ($src);

    
// remove slash from start of string
    
if (strpos ($src'/') === 0) {
        
$src substr ($src, -(strlen ($src) - 1));
    }

    
// don't allow users the ability to use '../'
    // in order to gain access to files below document root
    
$src preg_replace ("/\.\.+\//"""$src);

    
// get path to image on file system
    
$src get_document_root ($src) . '/' $src;

    if (!
is_file ($src)) {
        
display_error ('source is not a valid file');
    }

    if (
filesize ($src) > MAX_FILE_SIZE) {
        
display_error ('source file is too big (filesize > MAX_FILE_SIZE)');
    }

    if (
filesize ($src) <= 0) {
        
display_error ('source file <= 0 bytes. Possible external file download error (file is too large)');
    }
    
    return 
realpath ($src);

}


/**
 *
 * @param <type> $src
 * @return string
 */
function get_document_root ($src) {

    
// check for unix servers
    
if (file_exists ($_SERVER['DOCUMENT_ROOT'] . '/' $src)) {
        return 
$_SERVER['DOCUMENT_ROOT'];
    }

    
// check from script filename (to get all directories to timthumb location)
    
$parts array_diff (explode ('/'$_SERVER['SCRIPT_FILENAME']), explode ('/'$_SERVER['DOCUMENT_ROOT']));

    
$path $_SERVER['DOCUMENT_ROOT'];
    
    foreach (
$parts as $part) {
        
$path .= '/' $part;
        if (
file_exists ($path '/' $src)) {
            return 
$path;
        }
    }

    
// special check for microsoft servers
    
if (!isset ($_SERVER['DOCUMENT_ROOT'])) {
        
$path str_replace ("/""\\"$_SERVER['ORIG_PATH_INFO']);
        
$path str_replace ($path''$_SERVER['SCRIPT_FILENAME']);

        if (
file_exists ($path '/' $src)) {
            return 
$path;
        }
    }

    
display_error ('file not found');

}


/**
 * generic error message
 *
 * @param <type> $errorString
 */
function display_error ($errorString '') {

    
header ('HTTP/1.1 400 Bad Request');
    echo 
'<pre>' htmlentities ($errorString);
    echo 
'<br />Query String : ' htmlentities ($_SERVER['QUERY_STRING']);
    echo 
'<br />TimThumb version : ' VERSION '</pre>';
    die ();


Reply With Quote
(#10 (permalink))
Old
Junior Member
tribun is on a distinguished road
 
Posts: 5
Join Date: Feb 2012
Default 10-01-2012, 06:56 PM

Quote:
Originally Posted by ShocK View Post
Hi, there's this written by an admin here - http://www.free-installations.info/t...host-com.4871/
THX

this was very helpfull, all runs perfect!
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off




Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.5.2
vBulletin Skin developed by: vBStyles.com