时间:2021-07-01 10:21:17 帮助过:2人阅读
width = $width;
$this->height = $height;
$this->num_chars = $num_chars;
}
function showImage(){
$this->createImage();
$this->drawBorder();
$this->drawChars();
$this->outPic();
}
//create canvas
function createImage(){
$this->image = imagecreate($this->width,$this->height);
//$rand_color = imagecolorallocate($this->image,rand(0,255),rand(0,255),rand(0,255));
$back = imagecolorallocate($this->image,0,0,0);
$border = imagecolorallocate($this->image,255,255,255);
imagefill($this->image,0,0,$back);
//imagefilledrectangle($thid->image,self::BORDER,self::BORDER,$this->width-self::BORDER,$this->height-self::BORDER,$border);
//imageline($this->image,1,1,100,100,$rand_color);
//$this->outPic();
}
//draw border
private function drawBorder(){
$outer_bg_color = imagecolorallocate($this->image,0,0,0);
$inner_bg_color = imagecolorallocate($this->image,255,255,255);
imagefill($this->image,0,0,$outer_bg_color);
imagefilledrectangle($this->image,self::BORDER,self::BORDER,$this->width-self::BORDER-1,$this->height-self::BORDER-1,$inner_bg_color);
}
//create char content
function createChar(){
$rand_ascii="";
$rand_type = rand(0,2);
switch($rand_type){
case 0:
$rand_ascii = rand(48,57);
break;
case 1:
$rand_ascii = rand(65,90);
break;
case 2:
$rand_ascii = rand(97,122);
break;
}
$rand_str = sprintf("%c",$rand_ascii);
return $rand_str;
}
//draw char
private function drawChars(){
$x = $this->width/$this->num_chars+1;
$y = $this->height/2;
for($index = 0; $index<$this->num_chars; $index++){
$rand_color = imagecolorallocate($this->image,rand(0,255),rand(0,255),rand(0,255));
imagechar($this->image,3,$x*$index+2,$y-$y/2,$this->createChar(),$rand_color);
}
}
//out pic
private function outPic(){
header("content-type:image/png");
imagepng($this->image);
}
function __destruct(){
imagedestroy($this->image);
}
}
/*$code = new ValidationCode();
//echo $code->createChar();
$code->showImage();*/
?>
code.php
createChar();
$code->showImage();
?>
这个问题已被关闭,原因:已经自己找到问题原因
文件名:原来为ValidationCode.php
修改为validate.php后可以正常显示验证码,
浏览器中请求code.php文件中进行显示验证码
width = $width;
$this->height = $height;
$this->num_chars = $num_chars;
}
function showImage(){
$this->createImage();
$this->drawBorder();
$this->drawChars();
$this->outPic();
}
//create canvas
function createImage(){
$this->image = imagecreate($this->width,$this->height);
//$rand_color = imagecolorallocate($this->image,rand(0,255),rand(0,255),rand(0,255));
$back = imagecolorallocate($this->image,0,0,0);
$border = imagecolorallocate($this->image,255,255,255);
imagefill($this->image,0,0,$back);
//imagefilledrectangle($thid->image,self::BORDER,self::BORDER,$this->width-self::BORDER,$this->height-self::BORDER,$border);
//imageline($this->image,1,1,100,100,$rand_color);
//$this->outPic();
}
//draw border
private function drawBorder(){
$outer_bg_color = imagecolorallocate($this->image,0,0,0);
$inner_bg_color = imagecolorallocate($this->image,255,255,255);
imagefill($this->image,0,0,$outer_bg_color);
imagefilledrectangle($this->image,self::BORDER,self::BORDER,$this->width-self::BORDER-1,$this->height-self::BORDER-1,$inner_bg_color);
}
//create char content
function createChar(){
$rand_ascii="";
$rand_type = rand(0,2);
switch($rand_type){
case 0:
$rand_ascii = rand(48,57);
break;
case 1:
$rand_ascii = rand(65,90);
break;
case 2:
$rand_ascii = rand(97,122);
break;
}
$rand_str = sprintf("%c",$rand_ascii);
return $rand_str;
}
//draw char
private function drawChars(){
$x = $this->width/$this->num_chars+1;
$y = $this->height/2;
for($index = 0; $index<$this->num_chars; $index++){
$rand_color = imagecolorallocate($this->image,rand(0,255),rand(0,255),rand(0,255));
imagechar($this->image,3,$x*$index+2,$y-$y/2,$this->createChar(),$rand_color);
}
}
//out pic
private function outPic(){
header("content-type:image/png");
imagepng($this->image);
}
function __destruct(){
imagedestroy($this->image);
}
}
/*$code = new ValidationCode();
//echo $code->createChar();
$code->showImage();*/
?>
code.php
createChar();
$code->showImage();
?>
测试:入口代码
createChar();
$code->showImage();
文件名:
测试结果:
结论:include的时候文件名跟类名没有关系。结果是可以的。我不知道你的为什么不可以。但是我测了是可以的。
真的假的啊!文件名和类名一样引用不起作用,这么神奇!有没有出什么错误提示