首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP登陆使用验证码判断

PHP登陆使用验证码判断

作者头像
刺_猬
发布2018-06-21 15:30:58
2.7K0
发布2018-06-21 15:30:58
举报
文章被收录于专栏:刺客博客刺客博客

最近在做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登陆使用验证码判断

» 转载请注明来源:刺客博客

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-12-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档