当前位置:编程学习 > php >>

PHP验证码制作的问题

我按照PHP100视频教程的方法做了一个验证码的简单程序 就这些: <?php session_start(); for($i=0;$i<=3;$i++) { @$con.=dechex(rand(0,15)); } $_SESSION[pic]=$con; $im=imagecreatetruecolor(100,20); $fir=imagecolorallocate($im,0,0,0); $sec=imagecolorallocate($im,255,255,255); imagestring($im,rand(3,5),rand(4,57),0,$con,$sec); header("Content-type: image/jpeg"); imagejpeg($im); ?> 启动SESSION是为了另一个页面用 我和教程上做的一模一样 可是为什么运行时图片是红叉 去掉$_SESSION[pic]却又能正常显示了?
答案:很简单,你用[pic]时PHP会检查是否有一个名为pic的常量。这肯定找不到,于是它就在文件开头输出一个警告信息。此信息在图片数据前输出,导致图片无法被浏览器识别。解决方法是给pic加引号,$_SESSION['pic']
其他:可以在验证码图片的程序里加上代码,不要缓存。如果不会的话。你就用 JS onclick= $_SESSION[pic]=$con;  应该加引号 $_SESSION["pic"]=$con;   不然程序错误 当然显示不了 我吧代码拿过来用好好的啊,能显示出来。
可能是你其他东西出错了吧。 $_SESSION[pic]=$con; 应该写成  $_SESSION[‘pic’]=$con;   刚有人提到 $_SESSION["pic"]=$con;   这样写正确 但是php会在" "之间寻找常量  不利于程序的执行速度

上一个:php中的foreach 一段设计思路求教
下一个:php Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'db_user'@'localhost'

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,