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
896 views