php生成验证码,总在for($i=0;$str='';$i<4;$i++)出现错误???刚开始学习,求指导!

<?php$image=imagecreate(200,100);$black=imagecolorallocate($image,0,0,0);$white=image... <?php
$image=imagecreate(200,100);
$black=imagecolorallocate($image,0,0,0);
$white=imagecolorallocate($image,255,255,255);
for($i=0;$i<9;$i++)
{
imageline($image,rand(0,200),rand(0,100),rand(0,200),rand(0,100),$white);
}
for($i=0;$i<150;$i++)
{
imagesetpixel($image,rand(0,200),rand(0,100),$white);
}

{

switch(rand(1,3))
{
case'1':
$ch=rand(0,9);
break;
case'2':
$ch=sprintf('%c',rand(97,122));
break;
$ch=sprintf('%c',rand(65,90));
break;
}
$str.=$ch;
}
imagettftext($image,32,rand(0,15),20,70,$white,'C:\windows\fonts\mingliu.ttc',$str);
imagejpeg($image);
imagedestory();
?>
展开
 我来答
cmoooo
2014-04-21 · TA获得超过3587个赞
知道小有建树答主
回答量:741
采纳率:0%
帮助的人:669万
展开全部
首先你的程序中没有
for($i=0;$str='';$i<4;$i++)
这条语句

另外,
for($i=0;$str='';$i<4;$i++)
语句中出现了3个分号,这是不符合PHP中for语句用法的。

for语句使用方式如下:

第一种,全语句模式:
for($i=0; $i<10; $i++){
}

第二种,省略初始赋值语句:
$i=0;
for(;$i<10; $i++){
}

第三种,省略回调语句:
for($i=0; $i<10; ){
$i++;
}

第四种, 省略初始赋值语句以及回调语句:
$i=0;
for(;$i<10;){
$i++;
}

for语句的用法只有以上四种情况,但是绝对不可以省略或者多出for后面括号中的分号。

你再检查下你的程序。
6fone
2014-04-21 · TA获得超过804个赞
知道小有建树答主
回答量:631
采纳率:33%
帮助的人:538万
展开全部
for()括号中只能有两个分号,
for($i=0;$str='';$i<4;$i++)
里面有3个了,要改成
for($i=0,$str='';$i<4;$i++)
追问
改了就没有错误了,但是为什么是一堆乱码?
追答
哪里是一堆乱码?生成的验证码吗
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式