Fifth pass at adding key files
This commit is contained in:
		
							
								
								
									
										278
									
								
								site/retailers/phpthumb/demo/phpThumb.demo.check.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										278
									
								
								site/retailers/phpthumb/demo/phpThumb.demo.check.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,278 @@
 | 
			
		||||
<?php
 | 
			
		||||
//////////////////////////////////////////////////////////////
 | 
			
		||||
///  phpThumb() by James Heinrich <info@silisoftware.com>   //
 | 
			
		||||
//        available at http://phpthumb.sourceforge.net     ///
 | 
			
		||||
//////////////////////////////////////////////////////////////
 | 
			
		||||
///                                                         //
 | 
			
		||||
// phpThumb.demo.check.php                                  //
 | 
			
		||||
// James Heinrich <info@silisoftware.com>                   //
 | 
			
		||||
//                                                          //
 | 
			
		||||
// Configuration analyzer for phpThumb settings and server  //
 | 
			
		||||
// settings that may affect phpThumb performance            //
 | 
			
		||||
// Live demo is at http://phpthumb.sourceforge.net/demo/    //
 | 
			
		||||
//                                                          //
 | 
			
		||||
//////////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
$ServerInfo['gd_string']  = 'unknown';
 | 
			
		||||
$ServerInfo['gd_numeric'] = 0;
 | 
			
		||||
ob_start();
 | 
			
		||||
if (!@include_once('../phpthumb.functions.php')) {
 | 
			
		||||
	ob_end_flush();
 | 
			
		||||
	die('failed to include_once("../phpthumb.functions.php")');
 | 
			
		||||
}
 | 
			
		||||
if (!@include_once('../phpthumb.class.php')) {
 | 
			
		||||
	ob_end_flush();
 | 
			
		||||
	die('failed to include_once("../phpthumb.class.php")');
 | 
			
		||||
}
 | 
			
		||||
ob_end_clean();
 | 
			
		||||
$phpThumb = new phpThumb();
 | 
			
		||||
if (include_once('../phpThumb.config.php')) {
 | 
			
		||||
	foreach ($PHPTHUMB_CONFIG as $key => $value) {
 | 
			
		||||
		$keyname = 'config_'.$key;
 | 
			
		||||
		$phpThumb->setParameter($keyname, $value);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
$ServerInfo['gd_string']  = phpthumb_functions::gd_version(true);
 | 
			
		||||
$ServerInfo['gd_numeric'] = phpthumb_functions::gd_version(false);
 | 
			
		||||
$ServerInfo['im_version'] = $phpThumb->ImageMagickVersion();
 | 
			
		||||
$gd_info                  = gd_info();
 | 
			
		||||
 | 
			
		||||
?>
 | 
			
		||||
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
	<title>phpThumb configuration analyzer</title>
 | 
			
		||||
	<link rel="stylesheet" type="text/css" href="/style.css" title="style sheet">
 | 
			
		||||
</head>
 | 
			
		||||
<body bgcolor="#C5C5C5">
 | 
			
		||||
 | 
			
		||||
This demo analyzes your settings (phpThumb.config.php and server/PHP) for <a href="http://phpthumb.sourceforge.net"><b>phpThumb()</b></a>.<br>
 | 
			
		||||
<br>
 | 
			
		||||
<table border="1">
 | 
			
		||||
	<tr><th colspan="8"><-- bad to good --></th></tr>
 | 
			
		||||
	<tr>
 | 
			
		||||
		<td bgcolor="red">    </td>
 | 
			
		||||
		<td bgcolor="orange">    </td>
 | 
			
		||||
		<td bgcolor="yellow">    </td>
 | 
			
		||||
		<td bgcolor="olive">    </td>
 | 
			
		||||
		<td bgcolor="darkgreen">    </td>
 | 
			
		||||
		<td bgcolor="green">    </td>
 | 
			
		||||
		<td bgcolor="lightgreen">    </td>
 | 
			
		||||
		<td bgcolor="lime">    </td>
 | 
			
		||||
	</tr>
 | 
			
		||||
</table>
 | 
			
		||||
<table border="1">
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
$versions['raw'] = array(
 | 
			
		||||
	'latest' => phpthumb_functions::SafeURLread('http://phpthumb.sourceforge.net/?latestversion=1', $dummy),
 | 
			
		||||
	'this'   => $phpThumb->phpthumb_version,
 | 
			
		||||
);
 | 
			
		||||
foreach ($versions['raw'] as $key => $value) {
 | 
			
		||||
	eregi('^([0-9\.]+)\-?(([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2}))?', $value, $matches);
 | 
			
		||||
	@list($huge, $major, $minor) = @explode('.', @$matches[1]);
 | 
			
		||||
	@list($year, $month, $day, $hour, $min) = @$matches[3];
 | 
			
		||||
	$versions['base'][$key]  = $matches[1];
 | 
			
		||||
	$versions['huge'][$key]  = $huge;
 | 
			
		||||
	$versions['major'][$key] = $major;
 | 
			
		||||
	$versions['minor'][$key] = $minor;
 | 
			
		||||
	$versions['stamp'][$key] = $matches[2];
 | 
			
		||||
	$versions['year'][$key]  = $year;
 | 
			
		||||
	$versions['month'][$key] = $month;
 | 
			
		||||
	$versions['day'][$key]   = $day;
 | 
			
		||||
	$versions['hour'][$key]  = $hour;
 | 
			
		||||
	$versions['min'][$key]   = $min;
 | 
			
		||||
	$versions['date'][$key]  = @mktime($hour, $min, 0, $month, $day, $year);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
$downloadlatest = 'Download the latest version from <a href="http://phpthumb.sourceforge.net">http://phpthumb.sourceforge.net</a>';
 | 
			
		||||
echo '<tr><th nowrap>Latest phpThumb version:</th><th>'.$versions['raw']['latest'].'</th><td>'.$downloadlatest.'</td></tr>';
 | 
			
		||||
echo '<tr><th nowrap>This phpThumb version:</th><th bgcolor="';
 | 
			
		||||
 | 
			
		||||
if (!$versions['base']['latest']) {
 | 
			
		||||
	// failed to get latest version number
 | 
			
		||||
	echo 'white';
 | 
			
		||||
	$message = 'Latest version unknown.<br>'.$downloadlatest;
 | 
			
		||||
} elseif (phpthumb_functions::version_compare_replacement($versions['base']['this'], $versions['base']['latest'], '>')) {
 | 
			
		||||
	// new than latest, must be beta version
 | 
			
		||||
	echo 'lightblue';
 | 
			
		||||
	$message = 'This must be a pre-release beta version. Please report bugs to <a href="mailto:info@silisoftware.com">info@silisoftware.com</a>';
 | 
			
		||||
} elseif (($versions['base']['latest'] == $versions['base']['this']) && ($versions['stamp']['this'] > $versions['stamp']['latest'])) {
 | 
			
		||||
	// new than latest, must be beta version
 | 
			
		||||
	echo 'lightblue';
 | 
			
		||||
	$message = 'You must be using a pre-release beta version. Please report bugs to <a href="mailto:info@silisoftware.com">info@silisoftware.com</a>';
 | 
			
		||||
} elseif ($versions['base']['latest'] == $versions['base']['this']) {
 | 
			
		||||
	// latest version
 | 
			
		||||
	echo 'lime';
 | 
			
		||||
	$message = 'You are using the latest released version.';
 | 
			
		||||
} elseif ($versions['huge']['latest'].$versions['major']['latest'] == $versions['huge']['this'].$versions['major']['this']) {
 | 
			
		||||
	echo 'olive';
 | 
			
		||||
	$message = 'One (or more) minor version(s) have been released since this version.<br>'.$downloadlatest;
 | 
			
		||||
} elseif (floatval($versions['huge']['latest'].str_pad($versions['major']['latest'], 2, '0', STR_PAD_LEFT)) < floatval($versions['huge']['this'].str_pad($t_major, 2, '0', STR_PAD_LEFT))) {
 | 
			
		||||
	echo 'yellow';
 | 
			
		||||
	$message = 'One (or more) major version(s) have been released since this version, you really should upgrade.<br>'.$downloadlatest;
 | 
			
		||||
} else {
 | 
			
		||||
	echo 'orange';
 | 
			
		||||
	$message = 'Fundamental changes have been made since this version.<br>'.$downloadlatest;
 | 
			
		||||
}
 | 
			
		||||
echo '">'.$phpThumb->phpthumb_version;
 | 
			
		||||
echo '</td><td>'.$message.'.<br></td></tr>';
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
echo '<tr><th>PHP version:</th><th bgcolor="';
 | 
			
		||||
if (phpthumb_functions::version_compare_replacement(phpversion(), '5.0.0', '>=')) {
 | 
			
		||||
	echo 'lime';
 | 
			
		||||
} elseif (phpthumb_functions::version_compare_replacement(phpversion(), '4.3.3', '>=')) {
 | 
			
		||||
	echo 'lightgreen';
 | 
			
		||||
} elseif (phpthumb_functions::version_compare_replacement(phpversion(), '4.2.0', '>=')) {
 | 
			
		||||
	echo 'green';
 | 
			
		||||
} elseif (phpthumb_functions::version_compare_replacement(phpversion(), '4.1.0', '>=')) {
 | 
			
		||||
	echo 'yellow';
 | 
			
		||||
} elseif (phpthumb_functions::version_compare_replacement(phpversion(), '4.0.6', '>=')) {
 | 
			
		||||
	echo 'orange';
 | 
			
		||||
} else {
 | 
			
		||||
	echo 'red';
 | 
			
		||||
}
 | 
			
		||||
echo '">'.phpversion();
 | 
			
		||||
echo '</td><td>PHP5 is ideal (support for numerous built-in filters which are much faster than my code).<br>PHP v4.3.2+ supports ImageSaveAlpha which is required for proper PNG/ICO output.<br>ImageRotate requires PHP v4.3.0+ (but buggy before v4.3.3).<br>EXIF thumbnail extraction requires PHP v4.2.0+.<br>Most things will work back to PHP v4.1.0, and mostly (perhaps buggy) back to v4.0.6, but no guarantees for any version older than that.</td></tr>';
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
echo '<tr><th>GD version:</th><th bgcolor="';
 | 
			
		||||
if ($ServerInfo['gd_numeric'] >= 2) {
 | 
			
		||||
	if (eregi('bundled', @$ServerInfo['gd_string'])) {
 | 
			
		||||
		echo 'lime';
 | 
			
		||||
	} else {
 | 
			
		||||
		echo 'yellow';
 | 
			
		||||
	}
 | 
			
		||||
} elseif ($ServerInfo['im_version']) {
 | 
			
		||||
	echo 'orange';
 | 
			
		||||
} else {
 | 
			
		||||
	echo 'red';
 | 
			
		||||
}
 | 
			
		||||
echo '">'.@$ServerInfo['gd_string'];
 | 
			
		||||
echo '</td><td>GD2-bundled version is ideal.<br>GD2 (non-bundled) is second choice, but there are a number of bugs in the non-bundled version.<br>GD1 will also (mostly) work, at much-reduced image quality and several features disabled. phpThumb can perform basic resizing with ImageMagick only, even if GD is not available.</td></tr>';
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
echo '<tr><th>ImageMagick version:</th><th bgcolor="';
 | 
			
		||||
if ($ServerInfo['im_version']) {
 | 
			
		||||
	echo 'lime';
 | 
			
		||||
} elseif (@$ServerInfo['gd_string']) {
 | 
			
		||||
	echo 'yellow';
 | 
			
		||||
} else {
 | 
			
		||||
	echo 'red';
 | 
			
		||||
}
 | 
			
		||||
echo '">'.($ServerInfo['im_version'] ? $ServerInfo['im_version'] : 'n/a');
 | 
			
		||||
echo '</td><td>ImageMagick is faster than GD, can process larger images without PHP memory_limit issues, can resize animated GIFs. phpThumb can perform basic resizing with ImageMagick only, even if GD is not available.</td></tr>';
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
echo '<tr><th>GD features:</th><th>';
 | 
			
		||||
$GDfeatures['red']    = array('JPG Support', 'PNG Support');
 | 
			
		||||
$GDfeatures['orange'] = array('GIF Read Support', 'GIF Create Support', 'FreeType Support');
 | 
			
		||||
foreach ($GDfeatures as $missingcolor => $features) {
 | 
			
		||||
	foreach ($features as $dummy => $feature) {
 | 
			
		||||
		echo '<div style="background-color: '.($gd_info[$feature] ? 'lime' : $missingcolor).';">'.htmlentities($feature).'</div>';
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
echo '</td><td>PNG support is required for watermarks, overlays, calls to ImageMagick and other internal operations.<br>JPG support is obviously quite useful, but ImageMagick can substitute<br>GIF read support can be bypassed with ImageMagick and/or internal GIF routines.<br>GIF create support can be bypassed with ImageMagick (if no filters are applied)<br>FreeType support is needed for TTF overlays.</td></tr>';
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
echo '<tr><th>GD extension "EXIF"</th><th bgcolor="';
 | 
			
		||||
if (extension_loaded('exif')) {
 | 
			
		||||
	echo 'lime';
 | 
			
		||||
} elseif (@$ServerInfo['gd_string']) {
 | 
			
		||||
	echo 'orange';
 | 
			
		||||
}
 | 
			
		||||
echo '">'.(extension_loaded('exif') ? 'TRUE' : 'FALSE');
 | 
			
		||||
echo '</td><td>EXIF extension required for auto-rotate images. Also required to extract EXIF thumbnail to use as source if source image is too large for PHP memory_limit and ImageMagick is unavailable.</td></tr>';
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
echo '<tr><th>magic_quotes_runtime:</th><th bgcolor="';
 | 
			
		||||
if (@ini_get('magic_quotes_runtime')) {
 | 
			
		||||
	echo 'red';
 | 
			
		||||
} else {
 | 
			
		||||
	echo 'lime';
 | 
			
		||||
}
 | 
			
		||||
echo '">'.$phpThumb->phpThumbDebugVarDump((bool) @get_magic_quotes_runtime());
 | 
			
		||||
echo '</td><td>This setting is evil. Turn it off.</td></tr>';
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
echo '<tr><th>magic_quotes_gpc:</th><th bgcolor="';
 | 
			
		||||
if (@ini_get('magic_quotes_runtime')) {
 | 
			
		||||
	echo 'orange';
 | 
			
		||||
} else {
 | 
			
		||||
	echo 'lime';
 | 
			
		||||
}
 | 
			
		||||
echo '">'.$phpThumb->phpThumbDebugVarDump((bool) @get_magic_quotes_gpc());
 | 
			
		||||
echo '</td><td>This setting is bad. Turn it off, if possible. phpThumb will attempt to work around it if it is enabled</td></tr>';
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
echo '<tr><th>safe_mode:</th><th bgcolor="';
 | 
			
		||||
if (@ini_get('safe_mode')) {
 | 
			
		||||
	echo 'yellow';
 | 
			
		||||
} else {
 | 
			
		||||
	echo 'lime';
 | 
			
		||||
}
 | 
			
		||||
echo '">'.$phpThumb->phpThumbDebugVarDump((bool) @ini_get('safe_mode'));
 | 
			
		||||
echo '</td><td>Best if off. Calls to ImageMagick will be disabled if on (limiting max image resolution, no animated GIF resize).</td></tr>';
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
echo '<tr><th>allow_url_fopen:</th><th bgcolor="';
 | 
			
		||||
if (@ini_get('allow_url_fopen')) {
 | 
			
		||||
	echo 'lime';
 | 
			
		||||
} else {
 | 
			
		||||
	echo 'yellow';
 | 
			
		||||
}
 | 
			
		||||
echo '">'.$phpThumb->phpThumbDebugVarDump((bool) @ini_get('allow_url_fopen'));
 | 
			
		||||
echo '</td><td>Best if on. HTTP source images will be unavailable if disabled and CURL is unavailable.</td></tr>';
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
echo '<tr><th>curl_version:</th><th bgcolor="';
 | 
			
		||||
if (function_exists('curl_version')) {
 | 
			
		||||
	echo 'lime';
 | 
			
		||||
} else {
 | 
			
		||||
	echo 'yellow';
 | 
			
		||||
}
 | 
			
		||||
echo '">'.(function_exists('curl_version') ? curl_version() : 'n/a') ;
 | 
			
		||||
echo '</td><td>Best if available. HTTP source images will be unavailable if CURL unavailable and <i>allow_url_fopen</i> is also disabled.</td></tr>';
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
echo '<tr><th>disable_functions:</th><th bgcolor="';
 | 
			
		||||
$disable_functions = @ini_get('disable_functions');
 | 
			
		||||
if (!$disable_functions) {
 | 
			
		||||
	echo 'lime';
 | 
			
		||||
} else {
 | 
			
		||||
	echo 'yellow';
 | 
			
		||||
}
 | 
			
		||||
echo '">'.eregi_replace('(shell_exec|system|passthru|exec)(,|$)', '<span style="background-color: red;">\\1</span>(\\2)', $disable_functions);
 | 
			
		||||
echo '</td><td>Best if nothing disabled. Calls to ImageMagick will be prevented if exec+system+shell_exec+passthru are disabled.</td></tr>';
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
echo '<tr><th>memory_limit:</th><th bgcolor="';
 | 
			
		||||
$memory_limit = @ini_get('memory_limit');
 | 
			
		||||
if (!$memory_limit) {
 | 
			
		||||
	echo 'lime';
 | 
			
		||||
} elseif ($memory_limit >= 32) {
 | 
			
		||||
	echo 'lime';
 | 
			
		||||
} elseif ($memory_limit >= 24) {
 | 
			
		||||
	echo 'lightgreen';
 | 
			
		||||
} elseif ($memory_limit >= 16) {
 | 
			
		||||
	echo 'green';
 | 
			
		||||
} elseif ($memory_limit >= 12) {
 | 
			
		||||
	echo 'darkgreen';
 | 
			
		||||
} elseif ($memory_limit >= 8) {
 | 
			
		||||
	echo 'olive';
 | 
			
		||||
} elseif ($memory_limit >= 4) {
 | 
			
		||||
	echo 'yellow';
 | 
			
		||||
} elseif ($memory_limit >= 2) {
 | 
			
		||||
	echo 'orange';
 | 
			
		||||
} else {
 | 
			
		||||
	echo 'red';
 | 
			
		||||
}
 | 
			
		||||
echo '">'.($memory_limit ? $memory_limit : '<i>unlimited</i>');
 | 
			
		||||
echo '</td><td>The higher the better. Divide by 5 to get maximum megapixels of source image that can be thumbnailed (without ImageMagick).'.($memory_limit ? ' Your setting ('.$memory_limit.') allows images up to approximately '.number_format($memory_limit / 5, 1).' megapixels' : '').'</td></tr>';
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
?>
 | 
			
		||||
</table>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
		Reference in New Issue
	
	Block a user