php验证码和不能正常显示解决办法
程序员文章站
2024-02-20 17:52:34
...
php验证码和不能正常显示解决方法
效果如图:
?
文件都放到了同一文件夹下。
?
CreateImage.class.php
width=$width; $this->height=$height; $this->codenum=$codenum; } function outImg() { //输出头 $this->outFileHeader(); //产生验证码 $this->createCode(); //产生图片 $this->createImage(); //设置干扰像素 $this->setDisturbColor(); //往图片上写验证码 $this->writeCheckCodeToImage(); imagepng($this->checkimage); imagedestroy($this->checkimage); } private function outFileHeader() { header ('Content-type: image/png'); } private function createCode() { $this->checkcode = strtoupper(substr(md5(rand()),0,$this->codenum)); } private function createImage() { $this->checkimage = @imagecreate($this->width,$this->height); $back = imagecolorallocate($this->checkimage,255,255,255); $border = imagecolorallocate($this->checkimage,0,0,0); imagefilledrectangle($this->checkimage,0,0,$this->width - 1,$this->height - 1,$back); // 白色底 imagerectangle($this->checkimage,0,0,$this->width - 1,$this->height - 1,$border); // 黑色边框 } private function setDisturbColor() { for ($i=0;$idisturbColor = imagecolorallocate($this->checkimage, rand(0,255), rand(0,255), rand(0,255)); imagesetpixel($this->checkimage,rand(2,128),rand(2,38),$this->disturbColor); } } private function writeCheckCodeToImage() { for ($i=0;$icodenum;$i++) { $bg_color = imagecolorallocate ($this->checkimage, rand(0,255), rand(0,128), rand(0,255)); $x = floor($this->width/$this->codenum)*$i; $y = rand(0,$this->height-15); imagechar ($this->checkimage, rand(5,8), $x, $y, $this->checkcode[$i], $bg_color); } } function __destruct() { unset($this->width,$this->height,$this->codenum); }}
?
checks.php
?
?
index.php
?
alert('验证码不能为空');window.location.href='index.php';";}if($checks==$_SESSION[check_checks]){ echo "";}else{ echo "";}}?>rand函数的应用
?
************************************容易出现的问题*************
?
?
?
1.未开启php_gd2.dll? 去php.ini将其前面的“ ;”去掉
2.上面的checks.php中
3.字符编码改为统一的
4.最容易忽略的一点:
? 你本机上的环境是将报错提示全部打开的,所以在输出时有系统的未定义提示信息也跟着一起输出了,这样生成的图片肯定就不正常了,方法有两,在ValidationCode.php和checks.php文件开头加上ini_set('display_errors',?'Off');??就ok了
?
?
?
**********************************************************
?
相关文章
相关视频
专题推荐
-
独孤九贱-php全栈开发教程
全栈 170W+
主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门
-
玉女心经-web前端开发教程
入门 80W+
主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门
-
天龙八部-实战开发教程
实战 120W+
主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习
推荐阅读
-
php验证码和不能正常显示解决办法
-
Destoon旺旺无法正常显示,点击提示“会员名不存在”的解决办法_php实例
-
php验证码和不能正常显示解决办法
-
Destoon旺旺无法正常显示,点击提示“会员名不存在”的解决办法_PHP教程
-
PHP验证码图片不能输出解决办法
-
php网页不能正常显示
-
ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法 原创,thinkphprun_PHP教程
-
php时间戳和正常时间显示的转换代码
-
PHP验证码图片不能输出解决办法_PHP教程
-
ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法 原创,thinkphprun_PHP教程
网友评论
文明上网理性发言,请遵守 新闻评论服务协议
我要评论