看评论区说没加session_start();但是在php文件中加了session_start()还是出现错误<?php session_start();//1.创建画布 $image = imagecreatetruecolor(100, 30);//创建一个高100宽30的画布(默认背景是黑色) $bgcolor = imagecolorallocate($image, 255, 255, 255);//#fff imagecolorallocate为图像分配颜色 imagefill($image, 0, 0, $bgcolor);//区域填充 // 2.实现数字加字母验证码(二) $captch_code = ''; for($i=0;$i<4;$i++){ $fontsize = 6; $fontcolor = imagecolorallocate($image, rand(0,120), rand(0,120), rand(0,120)); $data = '123456789'; $fontcontent = substr($data, rand(0,strlen($data)-1),1); $captch_code.=$fontcontent; $x = ($i*100/4) + rand(5,10); $y = rand(5,10); imagestring($image, $fontsize, $x, $y, $fontcontent, $fontcolor); } $_SEESSION['authcode']=$captch_code;//3.增加干扰元素 //增加点干扰 for ($i=0; $i < 200; $i++) { $pointcolor = imagecolorallocate($image, rand(50,200), rand(50,200), rand(50,200)); imagesetpixel($image, rand(1,99), rand(1,29), $pointcolor); } //增加线干扰 for ($i=0; $i < 3; $i++) { $linecolor = imagecolorallocate($image, rand(80,220), rand(80,220), rand(80,220)); imageline($image, rand(1,99), rand(1,29), rand(1,99), rand(1,29), $linecolor); } header('content-type:image/png');//向浏览器输出图片头信息 imagepng($image);//输出图片到浏览器 //end imagedestroy($image);//销毁图片
2 回答
我是新手_请多指教
TA贡献140条经验 获得超79个赞
首先,这个不是错误,是一个警告。所以如果服务器不能改,每个变量使用前应当先定义。
方法1:服务器配置修改
修改php.ini配置文件,error_reporting = E_ALL & ~E_NOTICE
方法2:对变量进行初始化,规范书写(比较烦琐,因为有大量的变量)。但还没有找到好定义方法,望大家指教
方法3:每个文件头部加上:error_reporting(0); 如果不行,只有打开php.ini,找到display_errors,设置为display_errors = Off。以后任何错误都不会提示。
方法4 :isset做判断
北漂外乡人
TA贡献1条经验 获得超0个赞
authcode 这个变量没有被定义,或者定义的时候,由于某些原因造成未能初始化,你可以检查一下你的代码,看看是什么情况, 还有一种更稳妥的方法就是使用 isset 去检测该变量的定义和初始化状态; 希望对你有所帮助
- 2 回答
- 1 关注
- 1877 浏览
添加回答
举报
0/150
提交
取消