Beauford wrote:
>
> There is something wonky with gd. I completely reinstalled Slackware
> today, including PHP, gd, and all the other stuff - and still nothing.
>
> I downloaded 5 separate captcha scripts and only got one to work. The code
> in all of them is very similar in that it creates a graphic with random
> letters and numbers.
>
> Here is the entire code from one that doesn't work.
>
> <?
>
> //---------------------------------------------------------------
> //This program is free software; you can redistribute it and/or
> //modify it under the terms of the GNU General Public License
> //as published by the Free Software Foundation; either version 2
> //of the License, or (at your option) any later version.
> //
> //This program is distributed in the hope that it will be useful,
> //but WITHOUT ANY WARRANTY; without even the implied warranty of
> //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> //GNU General Public License for more details.
> //
> //Meezerk's CAPTCHA - A Computer Assisted Program for Telling
> // Computers and Humans Apart
> //Copyright (C) 2004 Daniel Foster [EMAIL PROTECTED]
> //---------------------------------------------------------------
>
> //Select size of image
> $size_x = "75";
> $size_y = "25";
>
> //generate random string
> $code = mt_rand("100000","999999");
>
> //store captcha code in session vars
> session_start( );
> $_SESSION['captcha_code'] = $code;
>
> //create image to play with
> $image = imageCreate($size_x,$size_y);
>
>
> //add content to image
> //------------------------------------------------------
>
>
> //make background white - first colour allocated is background
> $background = imageColorAllocate($image,255,255,255);
>
>
>
> //select grey content number
> $text_number1 = mt_rand("0","150");
> $text_number2 = mt_rand("0","150");
> $text_number3 = mt_rand("0","150");
>
> //allocate colours
> $white = imageColorAllocate($image,255,255,255);
> $black = imageColorAllocate($image,0,0,0);
> $text =
> imageColorAllocate($image,$text_number1,$text_number2,$text_number3);
>
>
>
> //get number of dots to draw
> $total_dots = ($size_x * $size_y)/15;
>
> //draw many many dots that are the same colour as the text
> for($counter = 0; $counter < $total_dots; $counter++) {
> //get positions for dot
> $pos_x = mt_rand("0",$size_x);
> $pos_y = mt_rand("0",$size_y);
>
> //draw dot
> imageSetPixel($image,$pos_x,$pos_y,$text);
> };
>
>
>
> //draw border
> imageRectangle($image,0,0,$size_x-1,$size_y-1,$black);
>
>
>
> //get coordinates of position for string
> //on the font 5 size, each char is 15 pixels high by 9 pixels wide
> //with 6 digits at a width of 9, the code is 54 pixels wide
> $pos_x = bcmod($code,$size_x-60) +3;
> $pos_y = bcmod($code,$size_y-15);
>
> //draw random number
> imageString($image, 5, $pos_x, $pos_y, $code, $text);
>
>
> //------------------------------------------------------
> //end add content to image
>
>
> //send browser headers
> header("Content-Type: image/jpeg");
>
>
> //send image to browser
> echo imagejpeg($image);
>
>
> //destroy image
> imageDestroy($image);
>
>
> ?>
Well, you may not have the BCmath enabled, and this script will break if
bcmod isn't there, probably without you seeing an error message.
A tip for debugging image scripts - comment out the line like
header("Content-Type: image/jpeg");
and run the script again; if there is an error it will be displayed (error
settings permitting) whereas with the header in place, all you will get is
the broken image icon, most likely.
Cheers
--
David Robley
A life lived in fear is half a life lived.
Today is Pungenday, the 27th day of Confusion in the YOLD 3172.
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php