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 条评论
登录 后参与评论

相关文章

来自专栏Django Scrapy

python3 邮箱相关邮箱的服务

邮箱的服务 POP 协议 邮局协议(Post Office Protocol,简称POP),POP是第一个用于下载邮件的协议,POP 协议的最新版本是第三版,也...

36010
来自专栏王小雷

GraphicsMagick安装&make命令使用

0.0本过程为GraphicsMagick Linux版安装,通过典型的make编译安装。 未了支持png和jpg格式,首先请安装依赖。执行 yum inst...

2185
来自专栏小白安全

小白博客 CryKeX:Linux内存加密密钥提取工具

CryKeX特性 1. 跨平台 2. 简单实用 3. 交互性强 4. 兼容性/可移植性强 5. 应...

3398
来自专栏黑白安全

kali Linux系统下Joomscan工具的使用方法

由于其灵活性,Joomla可能是使用最广泛的CMS。对于这个CMS,它是一个Joomla扫描仪。 它将帮助网络开发人员和网站管理员帮助确定已部署的Joomla网...

743
来自专栏主机笔记

把linux设置成使用密钥登录

平常使用服务器,因为是在互联网中,只要知道端口密码和ip就可以登录,方便的同时也带来了一定的安全隐患,今天就介绍一个把密码禁用,使用密钥登录的方法,这样就实现了...

4276
来自专栏虚拟化云计算

qemu-libvirt-磁盘加密

# qemu-img convert -f qcow2 -O qcow2 -o encryption template.img encry.qcow2

4088
来自专栏北京马哥教育

openvpn安装配置过程

前言 之前为了方便远程办公时访问公司的内部系统,如:svn、OA、wiki、禅道等等;通通在防火墙上做了端口映射。然后有个内部系统被黑 了,各种弱口令...

1.6K7
来自专栏程序猿

Burp Suite教程: 第四节 CA证书的安装与卸载

//更多内容欢迎点击原文链接查看。 在前一节,我们已经学习了HTTP消息如何通过Burp Proxy进行拦截和处理,本章我们将继续学习HTTPS...

6238
来自专栏Laoqi's Linux运维专列

设置grub密码

1243
来自专栏云计算教程系列

如何在Debian 9上设置OpenVPN服务器

想要在连接到不受信任的网络(例如酒店的WiFi或咖啡店)时,通过智能手机或笔记本电脑安全可靠地访问互联网?一个虚拟专用网络(VPN)允许,如果你是在专用网络上你...

6572

扫码关注云+社区