Home >Backend Development >PHP Tutorial >创建验证码,突然出现大量异常,麻烦帮忙看看,多谢

创建验证码,突然出现大量异常,麻烦帮忙看看,多谢

WBOY
WBOYOriginal
2016-06-13 11:55:141080browse

创建验证码,突然出现大量错误,麻烦帮忙看看,谢谢

我在尝试编写一个验证码的php脚本,先开始提示image函数不可用,于是我就添加了php5-gd
安装完成后,发现还是提士找不到函数
于是我就使用了sudo /etc/init.d/apache2 focus-reload
然后 提示函数问题了,却显示大量警告信息
我查看了修改 php.ini文件  error.report =E_ALL & ~E_NOTICE
重启服务器但是还是如此、
验证码的生成代码如下

<br /><?php<br />	session_start();<br />	//set some important identfy constants<br />	define('IDENTFY_NUM',5);<br />	define('IDENTFY_WIDTH',75);<br />	define('IDENTFY_HEIGT',25);<br />	//create the random pass-phrase<br />	$pass_phrase="";<br />	for($i=0;$i<IDENTFY_NUM;$i++){<br />		$pass_phrase.=chr(rand(97,122));<br />	<br />	}<br />	$_SESSION['pass_phrase']=sha1($pass_phrase);<br />	$img=imagecreatetruecolor(IDENTFY_WIDTH,IDENTFY_HEIGHT);<br />	$bg_color=imagecolorallocate($img,255,255,255);<br />	$text_color=imagecolorallocate($img,0,0,0);<br />	$graphic_color=imagecolorallocate($img,64,64,64);<br />	<br />	imagefilledrectangle($img,0,0,IDENTFY_WIDTH,IDENTFY_HEIGHT,$bg_color);<br />	<br />	//Draw random lines<br />	for($i=0;$i<5;$i++){<br />		imageline($img,0,rand()%IDENTFY_HEIGHT,IDENTFY_WIDTH,rand()%INDENTFY_HEIGHT,$graphic_color);<br />	}<br />	for($i=0;$i<50;$i++){<br />		imagesetpixel($img,rand()%IDENTFY_WIDTH,rand()%IDENTFY_HEIGHT,$graphic_color);<br /><br />	}<br />	//Draw the string<br />	imagettftext($img,18,0,5,IDENTFY-5,$text_color,"Courier New Bold.ttf",$pass_phrase);<br />	header("Content-type:image/png");<br />	imagepng($img);<br />	imagedestroy($img);	<br />?>	<br /><br />

------解决方案--------------------
自己检查一下,常量的定义和使用不一致
------解决方案--------------------
已经提示的很明显 23行 你的除法里面分母不能是零  由于这里有错误 倒置$img变量里有杂项值 使得27行的imagesetpixel函数没有一个可用的图片资源
<br />for($i=0;$i<5;$i++){<br />        imageline($img,0,<span   style="max-width:90%">rand()%IDENTFY_HEIGHT</span>,IDENTFY_WIDTH,<span style="color: #FF0000;">rand()%INDENTFY_HEIGHT</span>,$graphic_color);<br />    }<br />


<br /> for($i=0;$i<50;$i++){<br />        imagesetpixel($img,rand()%IDENTFY_WIDTH,rand()%IDENTFY_HEIGHT,$graphic_color);<br /> <br />    }<br />

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn