|  | Posted by Hendri Kurniawan on 12/28/06 22:37 
Might be the http header
 CPD wrote:
 > I have an image-generating script myimage.php that's worked and that I've
 > used for years. All it does is increment a counter file and output a single
 > pixel in the color I provide. But on one particular web server I uploaded
 > to, the behavior is strange.
 >
 > If I enter the URL http://www.domain.ext/myimage.php, the picture is
 > displayed as expected. But if I insert the script into HTML, like <img
 > src="myimage.php">, it fails to display and I get the broken image icon,
 > instead.
 >
 > This has never happened before, but I do not know enough about PHP builds
 > and web server settings to figure this out.
 >
 > Any suggestions? Thanks for any help!
 >
 >
 >
 > Here's the code, if necessary:
 >
 > $filename = trim($_GET['filename']);
 > $color = (trim($_GET['color']) == "") ? "000000" : trim($_GET['color']);
 >
 > $count = '0';
 > $file_last_mod = 0;
 >
 > // Set up filename whether or not provided
 >
 > if(strlen($filename)) {
 >     $filename .= ".count";
 > }
 > else {
 >     $fname_end = strrpos($script_name, ".");
 >     $fname_end = ($fname_end === false) ? strlen($script_name) :
 > $fname_end - 1;
 >     $slash_pos = strrpos($script_name, "/");
 >     $fname_start = ($slash_pos === false) ? 0 : $slash_pos + 1;
 >     $script_name = (!strlen($filename)) ? $HTTP_SERVER_VARS['SCRIPT_NAME'] :
 > $filename;
 >     $filename = substr($script_name, $fname_start, $fname_end - $slash_pos)
 > .. ".count";
 > }
 >
 > // open and read file if it exists
 >
 > if (file_exists($filename)) {
 >     $file_last_mod = filemtime($filename);
 >     $count = file_get_contents($filename);
 > }
 >
 > // increment count
 >
 > $count += 1;
 >
 > // reopen file and write new count
 >
 > $handle = fopen($filename, "w");
 > fwrite($handle, $count);
 > fclose($handle);
 >
 > // Generate a 1 x 1 pixel image
 >
 > $im = @imagecreate(1, 1)
 >     or die("<!-- Cannot Initialize new GD image stream -->");
 >
 > // Set up color if not provided
 >
 > if (!strlen(trim($color))) $color = "000000";
 >
 > // Set image color
 >
 > $red   = 0 + base_convert(substr($color, 0, 2), 16, 8);
 > $green = 0 + base_convert(substr($color, 2, 2), 16, 8);
 > $blue  = 0 + base_convert(substr($color, 4, 2), 16, 8);
 > $img_color = imagecolorallocate($im, $red, $green, $blue);
 >
 > // Output the created image according to available GD image support
 >
 > if (function_exists("imagegif")) {
 >     header("Content-type: image/gif");
 >     imagegif($im);
 > } elseif (function_exists("imagejpeg")) {
 >     header("Content-type: image/jpeg");
 >     imagejpeg($im);
 > } elseif (function_exists("imagepng")) {
 >     header("Content-type: image/png");
 >     imagepng($im);
 > } elseif (function_exists("imagewbmp")) {
 >     header("Content-type: image/vnd.wap.wbmp");
 >     imagewbmp($im);
 > } else {
 >     die("<!-- No image support on this PHP server -->");
 > }
 >
 >
 [Back to original message] |