Heim > Artikel > Backend-Entwicklung > 创建验证码,突然出现大量错误,麻烦帮忙看看,谢谢
我在尝试编写一个验证码的php脚本,先开始提示image函数不可用,于是我就添加了php5-gd
安装完成后,发现还是提士找不到函数
于是我就使用了sudo /etc/init.d/apache2 focus-reload
然后 提示函数问题了,却显示大量警告信息
我查看了修改 php.ini文件 error.report =E_ALL & ~E_NOTICE
重启服务器但是还是如此、
验证码的生成代码如下
<?php session_start(); //set some important identfy constants define('IDENTFY_NUM',5); define('IDENTFY_WIDTH',75); define('IDENTFY_HEIGT',25); //create the random pass-phrase $pass_phrase=""; for($i=0;$i<IDENTFY_NUM;$i++){ $pass_phrase.=chr(rand(97,122)); } $_SESSION['pass_phrase']=sha1($pass_phrase); $img=imagecreatetruecolor(IDENTFY_WIDTH,IDENTFY_HEIGHT); $bg_color=imagecolorallocate($img,255,255,255); $text_color=imagecolorallocate($img,0,0,0); $graphic_color=imagecolorallocate($img,64,64,64); imagefilledrectangle($img,0,0,IDENTFY_WIDTH,IDENTFY_HEIGHT,$bg_color); //Draw random lines for($i=0;$i<5;$i++){ imageline($img,0,rand()%IDENTFY_HEIGHT,IDENTFY_WIDTH,rand()%INDENTFY_HEIGHT,$graphic_color); } for($i=0;$i<50;$i++){ imagesetpixel($img,rand()%IDENTFY_WIDTH,rand()%IDENTFY_HEIGHT,$graphic_color); } //Draw the string imagettftext($img,18,0,5,IDENTFY-5,$text_color,"Courier New Bold.ttf",$pass_phrase); header("Content-type:image/png"); imagepng($img); imagedestroy($img); ?>
自己检查一下,常量的定义和使用不一致
自己检查一下,常量的定义和使用不一致
字体文件要使用绝对路径,你放在哪就写哪
已经提示的很明显 23行 你的除法里面分母不能是零 由于这里有错误 倒置$img变量里有杂项值 使得27行的imagesetpixel函数没有一个可用的图片资源
for($i=0;$i<5;$i++){ imageline($img,0,rand()%IDENTFY_HEIGHT,IDENTFY_WIDTH,rand()%INDENTFY_HEIGHT,$graphic_color); }
for($i=0;$i<50;$i++){ imagesetpixel($img,rand()%IDENTFY_WIDTH,rand()%IDENTFY_HEIGHT,$graphic_color); }
已经提示的很明显 23行 你的除法里面分母不能是零 由于这里有错误 倒置$img变量里有杂项值 使得27行的imagesetpixel函数没有一个可用的图片资源
for($i=0;$i<5;$i++){ imageline($img,0,rand()%IDENTFY_HEIGHT,IDENTFY_WIDTH,rand()%INDENTFY_HEIGHT,$graphic_color); }
for($i=0;$i<50;$i++){ imagesetpixel($img,rand()%IDENTFY_WIDTH,rand()%IDENTFY_HEIGHT,$graphic_color); }
for($i=0;$i<5;$i++){ imageline($img,0,rand()%IDENTFY_HEIGHT,IDENTFY_WIDTH,rand()%INDENTFY_HEIGHT,$graphic_color); }
for($i=0;$i<50;$i++){ imagesetpixel($img,rand()%IDENTFY_WIDTH,rand()%IDENTFY_HEIGHT,$graphic_color); }