专栏首页刺客博客PHP登陆使用验证码判断

PHP登陆使用验证码判断

最近在做PHP项目,发现验证码是必须在登陆页面出现的,如图所示:

研究了一下实现方法,发现是使用code.php生成验证码,并且把生成的验证码存入session会话,具体验证码代码如下:

<?php //此文件存为code.php放到php根目录 session_start(); $img = imagecreatetruecolor(100, 35); $black = imagecolorallocate($img, 0x00, 0x00, 0x00); $green = imagecolorallocate($img, 0x00, 0xFF, 0x00); $white = imagecolorallocate($img, 0xFF, 0xFF, 0xFF); imagefill($img,0,0,$white); //生成随机的验证码 $code = ''; for($i = 0; $i < 4; $i++) { $code .= rand(0, 9); } $_SESSION['Checknum'] = $code; //$_SESSION['Checknum'] = $code; 为存储验证码到session会话,其他页面判断此值即可判断验证码 imagestring($img, 30, 28, 10, $code, $black); //加入噪点干扰 for($i=0;$i<200;$i++) { imagesetpixel($img, rand(0, 100) , rand(0, 100) , $black); imagesetpixel($img, rand(0, 100) , rand(0, 100) , $green); } //输出验证码 header("content-type: image/png"); imagepng($img); imagedestroy($img); ?>

登陆页面在form表单中调入当前code.php文件到合适地方

<input name="passcode" type="text" /> <img src="code.php" />

注意一个重要的地方:

操作之前必须打开php的GD库,修改php.ini文件的配置,取消extension=php_gd2.dll前面的分号。

之后刷新页面即可出线验证码在登陆界面。 但是如何对验证码进行判断呢? 看我的代码:

<?php session_start(); $code = isset($_REQUEST['passcode'])? $_REQUEST['passcode'] : ''; if($code) { if( $code == $_SESSION["Checknum"]){ //这里接数据库判断登陆即可 } else { echo '<script>alert("验证码输入错误!");window.location.href="login.php";</script>'; } ?>

我是在当前页面处理form表单传递的值,所以直接使用if($code) 判断值即是否为空对验证码进行判断即可。 希望对验证码研究需求的同学有帮助。

» 本文链接:PHP登陆使用验证码判断 » 转载请注明来源:刺客博客

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Alpine Linux 实现开机自启脚本

    前面我们安装了Alpine,具体参考这个:Linux下OpenVZ平台Alpine Linux一键安装脚本 ,然后想着继续搞下去,因为这小东西长得太精致了,就...

    刺_猬
  • Linux使用指定用户运行程序

    其实关于降权运行,也就这么一句: su - user -c "xxxxxx",也没必要写一篇文章来解释,但是出于安全考虑,以及对之前出现的aria2权限过高的问...

    刺_猬
  • 利用Shell为宝塔面板添加动态密码登陆

    刺_猬
  • 用三行代码生成图片验证码

    图片验证码,在我们日常使用的产品或服务中,经常可以看到。那么使用Python,如何用Python实现生成图片验证码呢?

    TalkPython
  • 别买比特币了,现在都玩以太坊“养猫”

    今天好韵妈妈小编给大家讲一个互联网圈有意思的事情,毕竟做生意也好,创业打工也罢了解点新鲜事物还是大有裨益的。话说,在微信最早推出那个粗糙的朋友圈飞机游戏的时候,...

    企鹅号小编
  • [验证码识别技术]字符验证码杀手--CNN

    字符验证码杀手--CNN 1 abstract  目前随着深度学习,越来越蓬勃的发展,在图像识别和语音识别中也表现出了强大的生产力。对于普通的深度学习爱好者来说...

    用户1170933
  • 【DS】Doc2Vec和Logistic回归的多类文本分类

    Doc2vec是一个NLP工具,用于将文档表示为向量,是word2vec方法的推广。 为了理解doc2vec,最好理解word2vec方法。但是,完整的数学细节...

    陆勤_数据人网
  • 数字货币,公共账本,智能合约?全是伪命题!曾改变乔布斯的图灵奖得主,谈区块链的真正价值

    鲜有人能同Butler Lampson般,在如此广泛的领域都取得夺目的建树——即便只截取他生涯的一个片段:

    区块链大本营
  • TIANCHI-津南数字制造算法挑战赛【赛场一】基本分析&Baseline

    有趣的是,训练集中缺失值比较多的A23和A21在测试集中并无缺失,同样地,测试集中缺失概率达67%的A25、A27和A20反而在训练集中并无缺失。(此处作者笔误...

    机器学习理论与数据竞赛实战
  • MySql之自动生成CRUD代码

    MyBatis能够通过获取MySql中的information_schema从而获取表的字段等信息,最后通过这些信息生成代码。 笔者受此启发,将MyBatis...

    无毁的湖光-Al

扫码关注云+社区

领取腾讯云代金券