PHP验证码 @符号

php中文网
发布: 2016-06-13 13:30:13
原创
1368人浏览过

求助 PHP验证码 @符号

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
<?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
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
<?php
    session_start();
    if($_POST[code]){
        if($_POST[code]==$_SESSION[check_pic]){
                echo "验证码正确:".$_SESSION[check_pic];
        }
            else 
        {
                echo "验证码错误";
            
        }
        
    }
?>
<form action="" method="post">
@@##@@<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<font color="#e78608">------解决方案--------------------</font><br>$rand.=<br><br>这个变量无赋值的情况使用,所以导致notice错误,图像是二进制,notice是文本,二者混合自然导致图片无法显示。<br><br>解决办法:<br>先给$rand赋值<br><br>$rand='';<br><br><br><font color="#e78608">------解决方案--------------------</font><br>
登录后复制
PHP code
    <a style="color:#f60; text-decoration:underline;" title="session" href="https://www.php.cn/zt/17098.html" target="_blank">session</a>_start();
    $rand = '';
    for($i=0;$i<font color="#e78608">------解决方案--------------------</font><br>
登录后复制
探讨
PHP code

session_start();

for($i=0;$i @$rand.=dechex(rand(1,15));//前面的这个@符号要是不加,图片就显示不出来。
}
@$_SESSION[check_pic]=$rand; //前面的@符号要是去掉的话这个就会报错 而且全是乱码。 ……
  PHP验证码 @符号
相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号