2010
Jun
12
最近在看PHP100的视频教程,呵呵,虽然以前编程天天都在用PHP,但是很多知识都是一知半解,看了PHP100的视频教程之后发现自己了解的东西真的很少。上面的视频教程很不错,推荐大家去看看。
今天看的是PHP生成验证码那节,按照教程做的,运行时却发现报错,如图:
源码如下:
for($i = 0; $i < 4; $i++){
$rand .= dechex(rand(1, 15)); //dechex将10进制转为16进制
}
$img = imagecreatetruecolor(60, 20); //创建图片
$bgcolor = imagecolorallocate($img, 180, 221, 247); //创建图片背景颜色
imagefill($img,0,0,$bgcolor);
//添加随机线条
for($i = 0; $i < rand(0, 5); $i++){
$linecolor = imagecolorallocate($img, rand(0, 255), rand(0, 255), rand(0, 255));
imageline($img, rand(0, 60), rand(0, 20), rand(0, 60), rand(0, 20), $linecolor);
}
//添加随机噪点
for($i = 0; $i < rand(0, 200); $i++){
$pixelcolor = imagecolorallocate($img, rand(0, 255), rand(0, 255), rand(0, 255));
imagesetpixel($img, rand(0, 60), rand(0, 20), $pixelcolor);
}
$color = imagecolorallocate($img, 255, 255, 255); //文字颜色
imagestring($img, 6, 10, 3, $rand, $color); //向图片写入文字
header('content-type:image/png');
imagepng($img);
网上找了一些相关资料,但基本上都说是在header前有输出,可是我什么也没有输出啊。于是到PHP100官方论坛找答案,发现真有人问,原来是$rand没有定义就是用了,只要在使用前加$rand = "'就可以了。为什么教程中没有报错呢?估计是关闭了apache的警告提示。
其实在看视频教程时我就在想难道$rand没有定义就可以使用吗?后来看到演示没有问题就没有再去想了。尽信书不如无书!求学时一定要亲自实践,必要时需要抱有怀疑态度。
本站原创,转载请标明:来自追梦博客(http://www.wuleilei.com/)
相关文章
用include函数后出现乱码的方法 (2009-06-09)
PHP下载CSS文件中的图片 (2009-06-16)
把CSS文件变成PHP (2009-06-16)
PHP中的类 (2009-06-25)
php 伪静态 (url rewrite mod_rewrite 重写) (2009-07-28)
用thinkphp重新把博客写一遍 (2009-08-02)
一段php加密/解密代码(解决密匙中含有加号) (2009-11-07)
ThinkPHP在Action与Action之间传递参数的方法 (2009-12-10)
评论嵌套原理 - 博客已支持评论嵌套 (2010-04-24)
PHP二维数组按照一个字段排序 (2010-12-28)
看看他们的脚印
又梦见了,忘记真的很难。 (2月8日)
晚上和爸妈吃个饭。 (2月6日)
装修好累哟
(2月4日)
白
JankoAtWarpSpeed对...