为了让我记忆有效,直接贴代码了。

1.identify.php

<?php/* * To change this license header, choose License Headers in Project Properties.* To change this template file, choose Tools | Templates* and open the template in the editor.*/header("content-type:image/png; charset=utf-8");session_start();srand((double)microtime() * 1000000);$imagewidth = 60;$imageheight = 20;$authimage = imagecreate($imagewidth, $imageheight); // 新建一个基于调色板的图像$black = imagecolorallocate($authimage, 0, 0, 0); // 为一副图像分配颜色$white = imagecolorallocate($authimage, 255, 255, 255);$red = imagecolorallocate($authimage, 255, 0, 0);$gray = imagecolorallocate($authimage, 200, 200, 200);$fontfile='C:/windows/fonts/simhei.ttf';//背景色为灰色imagefill($authimage, 0, 0, $gray);//随机生成一些干扰像素for($i=0;$i<400;$i++){$randcolor = imagecolorallocate($authimage, rand(10, 255), rand(10, 255), rand(10, 255));imagesetpixel($authimage,rand()%$imagewidth, rand()%$imageheight, $randcolor);  // 画一个单一像素}//随机划线for($i = 0; $i < 6; $i++){imageline($authimage, rand()%$imagewidth, rand()%$imageheight, rand()%$imagewidth, rand()%$imageheight, $black);  // 画一条线段}$array = "0123456789abcdefghijklmnopqrstuvwxyz";$authcode='';for($i = 0; $i < 4; $i++){$authcode .=substr($array, rand(0, 35), 1);  // 返回字符串的子串从array中rand位置开始,长度为1}imagettftext($authimage, 20, 0, 0, $imageheight, $red, $fontfile, $authcode); // 用true type字体向图像写入文本$_SESSION['auth'] = $authcode;imagepng($authimage); // 以png格式输出文件imagedestroy($authimage); // 销毁图像

思路:1.新建图像imagecreate    2.配置颜色imagecolorallocate    3.添加文本imagettftext, 添加像素imagesetpixel, 添加线imageline
2.index.php

<html><meta charset="utf-8"/><title>验证码</title><body><form action="id.php" method="post"><tr><input type="text" name="identify"/><image src="identify.php"/><input type="submit" name="yz" value="验证"/></tr></form></body>
</html>

3.id.php

<?php/* * To change this license header, choose License Headers in Project Properties.* To change this template file, choose Tools | Templates* and open the template in the editor.*/
header("content-type:text/html; charset=utf-8");
session_start();
echo $_POST['identify'];
echo "<br>";
echo $_SESSION['auth'];
if(!strcmp($_POST['identify'], $_SESSION['auth'])){echo '验证通过';
}else{echo '验证未通过';
}
session_close();

总结在用session的时候,记着打开session,identify.php产生的是一张图片所以可以直接使用<image src="idetify.php"/>来显示

使用session验证输入的验证码是否正确相关推荐

  1. Session-判断用户登陆验证码是否正确

    个人博客地址https://nfreak-man.cn 验证码为随机生成,服务器从 session 获取验证码,并和用户输入的验证码进行比对,结果通过 requesrt 转发到 success.jsp ...

  2. js luhn算法_判断用户输入的银行卡号是否正确--基于Luhn算法的格式校验

    开发中,有时候,为了打造更好的用户体验,同时减轻服务器端的压力,需要对于一些如,手机号码,银行卡号,身份证号码进行格式校验 下面是判断银行卡号输入是否正确的代码(基于Luhn算法的格式校验): iOS ...

  3. 系统检测到您的访问行为异常 请正确输入以下验证码,验证通过后,可继续使用经验

    最近在公司上网百度时经常会出现这样的提示: 系统检测到您的访问行为异常 请正确输入以下验证码,验证通过后,可继续使用经验- 然后你输入其验证码,又不说对也不说错,就卡那,点击也换不了,很是无奈 ... ...

  4. 手机号获取验证码、验证验证码是否正确

    html: <div class="left_box lf"> <div class="menu"> <span style=&q ...

  5. php7.1.6验证码错误,steam输入验证码不正确怎么办

    steam输入验证码不正确怎么办? steam手机令牌验证码输入正确,但一直显示令牌的验证码是错误需要把令牌进行转移,转移方法为: 1.首先打开之前旧的手机的steam令牌软件,然后点开左侧菜单,在里 ...

  6. Ajax 验证用户输入的验证码是否与随机生成的一致

    后台Java代码[验证码生成] /*** 随机生成6位随机验证码*/public static String createRandomVcode(){//验证码String vcode = " ...

  7. Java输入n个无序的整数,请编写程序,找出其中最大数所在的位置.请以以下三种情况运行你的程序.以便验证你的程序是否正确.(不得少于5个数)① 最大数在最前 ② 最大数在最后 ③ 最大

    代码如下: import java.util.ArrayList; import java.util.Scanner; /*输入n个无序的整数,请编写程序,找出其中最大数所在的位置.请以以下三种情况运 ...

  8. 编写一个将用户输入的信息输出到网页的js程序 和 用if else验证用户输入的密码是否正确(两个代码)

    js的一次作业罢了 tip:编写一个将用户输入的信息输出到网页的js程序 和 用if else验证用户输入的密码是否正确 (两个代码) 1.编写一个将用户输入的信息输出到网页的js程序 <!DO ...

  9. 输入一个Email地址,然后使用正则表达式验证该Email地址是否正确。

    输入一个Email地址,然后使用正则表达式验证该Email地址是否正确 . import java.util.regex.Pattern; import java.util.regex.Matcher ...

  10. Flask项目实战——6—(前台用户模型、前台登录注册、图形验证码、手机短信验证码、添加表单验证短信验证码请求)

    1.前台用户模型 前台用户模型定义 创建前台模型文件 apps/front/models.py # -*- encoding: utf-8 -*- """ @File : ...

最新文章

  1. django mysql save_python,django,向mysql更新数据时save()报错不能用
  2. UA MATH566 统计理论 截断数据
  3. 记一次继承了AbstractAuthenticationProcessingFilter 的过滤器被执行了两次问题
  4. python代码可以内嵌在asp文件中_在IE中使用Python作为开发脚本(转)
  5. WinAPI: SetLayeredWindowAttributes - 设置窗口的透明
  6. 线性表(代码、分析、汇编)
  7. 前端学习(1922)vue之电商管理系统电商系统之渲染角色数据
  8. 最短路径 | 1087 三重标尺+记录最短路径条数
  9. android+adb+push到系统下,Android adb push 应用到app/system
  10. Jackson2 json 转换Bean, Bean 里没有对应的值 jackson Un的解决方式
  11. Unity 粒子特效 之 LogoEffect ParticleSystem 文字图片logo粒子特效
  12. CSI.SAP2000.v19.1.1 Win32_64 2CD通用有限元软件
  13. 【ENVI】监督分类
  14. 2022全国大学生数学建模竞赛获奖难么?国赛求解过程技巧及方案
  15. 14期-连肝7个晚上,总结了计算机网络的知识点!(共66条)
  16. 【数据结构与算法】动态规划
  17. 化妆品级羧甲基纤维素钠(CMC)-市场现状及未来发展趋势
  18. abs int 宏定义_【C语言】15-预处理指令1-宏定义
  19. nova系列可以升级鸿蒙吗,鸿蒙官网再度放出新消息,华为nova 6系列以上7款机型可以升级...
  20. Objective-C 编程语言官网文档(一)-简介

热门文章

  1. 刮刮乐html5效果,HTML5 简单实现刮刮乐效果
  2. 基于STM32设计的UNO卡牌游戏(双人、多人对战)
  3. 01_Snaker简介
  4. 解决问题:PostgreSQL类型为 json, 但表达式的类型为 character varying
  5. 应用尝试更改计算机,win10无法使用内置管理员帐户打开应用解决方法
  6. python使用numpy的np.mod函数计算numpy数组除以某一特定数值剩余的余数(remainder)、np.mod函数和np.fmod函数对负值的处理方式有差异
  7. 第三章(第一部分) 月夜猫の魅 友谊的决裂
  8. centos7 更新 Firefox 版本
  9. 【Tableau】时间维度
  10. 微信公众号盈利模式_微信公众号的盈利方式有哪些?