Ik probeer een image te maken met imagepng/imagjpeg maar blijkbaar lukt dat niet op de scoutnetserver.
Op een andere host werkt het script wel.
Ik schrijf maar heel soms code voor de scoutswebsite en bijgevolg heb ik geen weet van eventuele wijzigingen aan de server config.
Normaal moet onderstaande code toch werken als GD library aanwezig is?
GD is blijkbaar aanwezig:
Code:
array(11) { ["GD Version"]=> string(27) "bundled (2.0.28 compatible)" ["FreeType Support"]=> bool(true) ["FreeType Linkage"]=> string(13) "with freetype" ["T1Lib Support"]=> bool(true) ["GIF Read Support"]=> bool(true) ["GIF Create Support"]=> bool(true) ["JPG Support"]=> bool(true) ["PNG Support"]=> bool(true) ["WBMP Support"]=> bool(true) ["XBM Support"]=> bool(true) ["JIS-mapped Japanese Font Support"]=> bool(false) }
Het was blijkbaar geen GD probleem, maar een file permissie probleem.
PHP kon de verify.jpg niet wegschrijven. (PHP draait in safe mode op scoutnet server )
Oplossing:
Code:
touch verify.jpg && chmod o+w verify.jpg
Code:
unction verification(){
/* set up image, the first number is the width and the second is the height*/
$im = ImageCreate(200, 40);
/*creates two variables to store color*/
$white = ImageColorAllocate($im, 255, 255, 255);
$black = ImageColorAllocate($im, 0, 0, 0);
/*random string generator.*/
/*The seed for the random number*/
srand((double)microtime()*1000000);
/*Runs the string through the md5 function*/
$string = md5(rand(0,9999));
/*creates the new string. */
$new_string = substr($string, 17, 5);
/*fill image with black*/
ImageFill($im, 0, 0, $black);
/*writes string */
ImageString($im, 4, 96, 19,$new_string, $white);
$_SESSION["new_string"] = $new_string;
/* output to browser*/
imagejpeg($im, "verify.jpg");
ImageDestroy($im);
echo "<tr>\n\t<td>Verificatiecode : </td><td><img><td></tr>\n" ;
echo "<tr>\n\t<td>Typ de code over (Let op de hoofdletters indien deze er zijn!) :</td><td><input></td></tr>";
}
Hopelijk stopt de spam nu....