Hey, ik heb een script, om een capatcha te maken, alleen dit werkt niet meer!

ik krijg nu de melding:
Fatal error: Call to undefined function imagecreate() in D:\webserver\www\thegame\captcha.php on line 75

dit is mijn script:

<?php
#####################################################
#####################################################
## ##
## Captcha script by Laurens A. Laman. ##
## This script Makes a Code and put it in ##
## the variable $_SESSION['security_code'] ##
## The User must type the code of the picture ##
## You can put it in a <img src=> tag ##
## ##
## Script tested on PHP 4.4.1 ##
## ##
#####################################################
#####################################################

##################################################
##################################################
## ##
## How to use it? ##
## ##
## This is very simple: just upload this script ##
## Then access it like <img src="captcha.php"> ##
## ##
##################################################
##################################################


###################################################
###################################################
## ##
## Let's START: ##
## ##
###################################################
###################################################


###################################################
###################################################
## ##
## Modify Variables: ##
## ##
###################################################
###################################################
$aant = "5";//this varable can be 2-40
$height = "30";
$SQUARE = "1";//this varable can be 1 = ON, 0 = OFF
$possible = 'bcdefghijklmnopqrstuvwxy23456789';//Characters used in code
$Background = "Auto"; // this varible can be AUTO, WHITE, RED, GREEN, BLUE
$LINES = "1";//Draw lines? this varable can be 1 = ON, 0 = OFF
$LINES_OVER = "1";//Draw lines Over text? this varable can be 1 = ON, 0 = OFF
###########################################################
###########################################################
## ##
## DO NOT MODIFY BENEATH UNLESS YOU KNOW WHAT YOUR DOING ##
## ##
###########################################################
###########################################################
//Start de sessie
session_start();

function generateCode($characters,$possible) {

$code = '';
$i = 0;
while ($i < $characters) {
$code[] = substr($possible, mt_rand(0, strlen($possible)-1), 1);
$codestr.=substr($possible, mt_rand(0, strlen($possible)-1), 1);
$i++;
}
return $code;
}

// Maak 't plaatje
$width= $aant * 25;
$im = imagecreate($width, $height);

//Achtergrond kleur
$Background = strtoupper ($Background);
if ($Background=="AUTO"){
$bg = imagecolorallocate($im, rand(190,255), rand(190,255), rand(190,255));
}elseif($Background=="WHITE"){
$bg = imagecolorallocate($im, 255, 255, 255);
}elseif($Background=="RED"){
$bg = imagecolorallocate($im, 255 , 0, 0);
}elseif($Background=="GREEN"){
$bg = imagecolorallocate($im, 0, 255, 0);
}elseif($Background=="BLUE"){
$bg = imagecolorallocate($im, 0, 0, 255);
}else{
$bg = imagecolorallocate($im, 255, 255, 255);
}

// Genereer de code
$code= generateCode($aant,$possible);

if($LINES=="1" ){
// Teken variabele lijnen
$i=0;
while( $i<($width*$height)/150) {
$noise_color = imagecolorallocate($im, rand(150,255), rand(150,255), rand(150,255));
imageline($im, rand(0,$width), rand(0,$height), rand(0,$width), rand(0,$height), $noise_color);
$i++;
}
}

if($SQUARE=="1" ){
// Teken een vierkand van 2 punten
$vierkand = imagecolorallocate($im, rand(0,255), rand(0,255), rand(0,255));
imageline($im, 0, 0, $width, 0, $vierkand);
imageline($im, 0, 1, $width, 1, $vierkand);
imageline($im, $width-1, 0, $width-1, $height, $vierkand);
imageline($im, $width-2, 0, $width-2, $height, $vierkand);
imageline($im, $width-1, $height-1, 0, $height-1, $vierkand);
imageline($im, $width-1, $height-2, 0, $height-2, $vierkand);
imageline($im, 0, $height, 0, 0, $vierkand);
imageline($im, 1, $height, 1, 0, $vierkand);
}

$widthpercar= 25;
//zorg er voor dat de text niet over elkaar gaat staan
$i = 0;
while ($i < $aant) {
$min=($widthpercar*$i) - 1;
$max=$widthpercar*$i;
$textcolor = imagecolorallocate($im, rand(0,150), rand(0,150), rand(0,150));
if ($i == 0){
imagestring($im, 28, rand(0,$widthpercar), rand(0,$height-14), $code[$i], $textcolor);
}elseif ($i==$aant){
imagestring($im, 28, rand($min+8,$max), rand(0,$height-14), $code[$i], $textcolor);
}else{
imagestring($im, 28, rand($min+8,$max), rand(0,$height-14), $code[$i], $textcolor);
}
$codestr = $codestr . $code[$i];
$i++;
}


if($LINES_OVER=="1" ){
// teken voor de zekerheid nog ff 2 lijnen OVER de text
$i=0;
while( $i<2) {
$noise_color = imagecolorallocate($im, rand(230,255), rand(230,255), rand(230,255));
imageline($im, rand(0,$width), rand(0,$height), rand(0,$width), rand(0,$height), $noise_color);
$i++;
}
}

$_SESSION['security_code']=$codestr;
// Print het plaatje
header("Content-type: image/png");
imagepng($im);
imagedestroy($im);

?>

en in php.ini heb ik al php_gd2.dll ingeschakeld, maar dit helpt niet :(

en in phpinfo staat niks over dat gd2 is ingeschakeld!

Erwin
na je aanpassing in php.ini, de webserver wel opnieuw gestart?

edit:
ff in php.ini aanpassen:

; Directory in which the loadable extensions (modules) reside.
extension_dir = "C:/php/extensions"

waar de dir van je extensions staat, dat was op me laptop ook de oplossing! :)
en waarom heeft het script dan WEL gewerkt ??? leg dat maar eens uit ;)
geen idee... dacht dat het altijd alleen op linux kon ivm gd.so maar kennelijk is er dus ook gewoon een windows dll die dit kan.

kreeg net hetzelfde probleme als jou, maar nu werkt het wel

Reageren