首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

PHP验证码 @符号

2012-05-28 
求助 PHP验证码 @符号PHP code?phpsession_start()for($i0$i4$i++){@$rand.dechex(rand(1,15))//

求助 PHP验证码 @符号

PHP code
<?php    session_start();        for($i=0;$i<4;$i++){        @$rand.=dechex(rand(1,15));//前面的这个@符号要是不加,图片就显示不出来。    }        @$_SESSION[check_pic]=$rand; //前面的@符号要是去掉的话这个就会报错 而且全是乱码。     $im=imagecreatetruecolor(100,30);         $bg=imagecolorallocate($im,0,0,0);    $te=imagecolorallocate($im,255,255,255);    imagestring($im,5,0,0,$rand,$te);      header("content-type:image/jpeg");  imagejpeg($im);?>



PHP code
<?php    session_start();    if($_POST[code]){        if($_POST[code]==$_SESSION[check_pic]){                echo "验证码正确:".$_SESSION[check_pic];        }            else         {                echo "验证码错误";                    }            }?><form action="" method="post"><img src="code.php"><br>验证码:<input type="text" name="code"><input type="submit" value="提交"></form>


我现在前面要是不加@符号的话就是报错。下面是错误的提示
Notice: Use of undefined constant code - assumed 'code' in F:\wamp\apps\project\code_sub.php on line 3

Notice: Use of undefined constant code - assumed 'code' in F:\wamp\apps\project\code_sub.php on line 4

Notice: Use of undefined constant check_pic - assumed 'check_pic' in F:\wamp\apps\project\code_sub.php on line 4

加上@符号之后就一切正常了 这是什么错误


[解决办法]
加引号 $_SESSION["check_pic"]

undefined constant是未定义常量的意思,不加引号字串按常量看待
[解决办法]
PHP code
for($i=0;$i<4;$i++){        $rand = '';        $rand.=dechex(rand(1,15));//前面的这个@符号要是不加,图片就显示不出来。    }    $_SESSION['check_pic']=$rand; //前面的@符号要是去掉的话这个就会报错 而且全是乱码。
[解决办法]
$rand.=

这个变量无赋值的情况使用,所以导致notice错误,图像是二进制,notice是文本,二者混合自然导致图片无法显示。

解决办法:
先给$rand赋值

$rand='';


[解决办法]
PHP code
    session_start();    $rand = '';    for($i=0;$i<4;$i++){        $rand.=dechex(rand(1,15));//前面的这个@符号要是不加,图片就显示不出来。    }        $_SESSION['check_pic']=$rand; //前面的@符号要是去掉的话这个就会报错 而且全是乱码。     $im=imagecreatetruecolor(100,30);         $bg=imagecolorallocate($im,0,0,0);    $te=imagecolorallocate($im,255,255,255);    imagestring($im,5,0,0,$rand,$te);      header("content-type:image/jpeg");  imagejpeg($im);
[解决办法]
探讨
PHP code

<?php
session_start();

for($i=0;$i<4;$i++){
@$rand.=dechex(rand(1,15));//前面的这个@符号要是不加,图片就显示不出来。
}
@$_SESSION[check_pic]=$rand; //前面的@符号要是去掉的话这个就会报错 而且全是乱码。 ……

热点排行