You are here: Re: PHP-gen'd images won't display in HTML « PHP Language « IT news, forums, messages
Re: PHP-gen'd images won't display in HTML

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 -->");
> }
>
>

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация