PHP之路——验证码实现

验证码生成并保存到session

<?php
	//开始session
	session_start();
	//画布大小
	$image = imagecreate(100, 40);
	$color = imagecolorallocate($image, 255, 255, 255);
	// imagefill($image,0, 0, $color);

	//创建验证码
	$code = ‘‘;
	for($i=0;$i<4;$i++){
		$fontsize = 9;
		$fontcolor = imagecolorallocate($image, rand(0,120), rand(0,120), rand(0,120));
		$x = $i * 25 + 10;
		$y = rand(5,10);
		$num = (string)rand(0,9);
		$code .= $num;
		imagestring($image, $fontsize, $x, $y, $num, $fontcolor);
	}
	//验证码记录到session
	$_SESSION[‘code‘] = $code;

	//增加干扰元素点
	for ($i=0; $i <800 ; $i++) {
		$color = imagecolorallocate($image, rand(50,200), rand(50,200), rand(50,200));
		imagesetpixel($image, rand(0,100), rand(0,40), $color);
	}

	//增加干扰线
	for ($i=0; $i <5 ; $i++) {
		$color = imagecolorallocate($image, rand(50,200), rand(50,200), rand(50,200));
		imageline($image, rand(10,180), rand(10,180), rand(10,180), rand(10,180), $color);
	}
	//说明这个是一个图片
	header("content-type:image/png");
	//输出到浏览器
	imagepng($image);
	//关闭
	imagedestroy($image);

html文件

<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title></title>
</head>
<body>
<div><img src="yzimg.php" width="100" height="40" id="yzimg" onclick="huan()"></div>
<div><input type="text" id="yzm"></input></div>
<button id="btn">提交</button>
<script type="text/javascript" src="http://libs.baidu.com/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
	function huan(){
		var num = Math.random() * 10;
		document.getElementById(‘yzimg‘).src = ‘yzimg.php?r=‘ + num;
	}
	$(‘#btn‘).click(function(){
		$.post(
				‘/yzm/yz.php‘,
				{‘yzm‘:$(‘#yzm‘).val()},
				function(data){
					if (data == 0) {
						alert(‘YES‘);
					} else {
						alert(‘NO‘);
						huan();
					}
				}
			)
	})
</script>
</body>
</html>

验证验证码文件

<?php
	//必须开启session
	session_start();
	if ($_POST[‘yzm‘] != $_SESSION[‘code‘]) {
		# code...
		echo 1;
	} else {
		echo 0;
	}
 ?>
时间: 2024-08-05 10:22:59

PHP之路——验证码实现的相关文章

克最通月值得白真员工存段况外引dsym

家卫生健康委员会卫生应急办公室组织编制了公民卫生应急素养条目,并在"4·15全民国家安全教育日"发布.条目共12条,涉及突发公共卫生事件应对,突发事件紧急医学救援.中毒及核和辐射应急处置等基本知识和要求.期望通过发布公民卫生应急素养条目,进一步提高民众卫生应急素养,推进卫生应急社会参与工作,切实维护公民生命安全和身体健康. http://weibo.com/p2018_04_18.Pp/230927981149922743777879派褐麓记杂XWO琶追斡晾 http://weibo.

Django之路 - 实现登录随机验证码

登录验证码是每个网站登录时的基本标配,网上也有很多相应的文章, 但是从生成验证码到 应用到自己的网站上的全步骤,并没有看到很多, 为了节约大家的时间,我把整体步骤写下来, 即拿即用哈 1. 生成随机验证码  随机验证码代码 2. 如何应用到你的django项目中 整个验证码的流程如下 用户访问登录页面,你的后台程序在给用户返回登录页面时,同时生成了验证码图片 用户输入账户信息和验证码数字,提交表单 后台判断用户输入的验证码和你生成的图片信息是否一致,如果一致,就代表验证码是没有问题的 问题就卡在

Python之路09-随机验证码&amp;发红包

参考女神博客链接:https://www.cnblogs.com/Eva-J/articles/11266790.html?tdsourcetag=s_pcqq_aiomsg#_label6 随机验证码小白版本 # -*- coding: utf-8 -*- # 2019/8/5 13:56 import random # 小白版 yan='' for i in range(4): #current=random.randint(0,9) #生成0-9的随机数 current=random.ra

【牛腩新闻公布系统】----你的验证码正确么

前言 这是一个奇妙的站点--牛腩新闻公布系统,尽管做的不咋地,但毕竟是自己动手敲出来,还是有一点点的满足感.同一时候这也是小编的第一个雠小鸭,长相不算美丽,发育还是挺健全的. 终有一天我的丑小鸭会变成白天鹅. 一步一步的进化,一步一步的蜕变-- 你的验证码正确么 哎呀--为什么我的牛腩新闻公布系统   请输入验证码的图片一直为这个样子呀--不显示,就是不显示图片,图片载入出错呀. 想想预计是图片路径不对. 尝试一:牛老师说的图片载入路径 <img src="handler/WaterMar

Python之路【第十九篇】:爬虫

Python之路[第十九篇]:爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟程序或者蠕虫. Requests Python标准库中提供了:urllib.urllib2.httplib等模块以供Http请求,但是,它的 API 太渣了.它是为另一个时代.另一个互联网所创建的.它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务. import

&lt;2015年末盘点&gt; 国内外交互体验最好的十款验证码

最近在网上看到各种关于吐槽验证码的帖子,什么<那些年我们遇见过的验证码>,什么<万恶的验证码>,什么<丧心病狂的验证码>等等等等,我竟不知道在这个高呼用户体验的互联网时代,会有如此的设计存在,将我们虐的体无完肤.来我们看看那些奇葩的验证码: 真的是惨不忍睹,小编实在忍不住去查了查验证码的前世今生,给大家科普一下:验证码是卡内基梅隆大学的路易斯.冯.安提出来的,主要是为了防止恶意破解密码.刷票,论坛灌水等问题,就现阶段的技术来看,验证码真是各大网站不可或缺的一扇防盗门呢.

php 汉字验证码

代码: captcha.php <?php //实现简单的验证码 //session_start session_start(); //画布 $image = imagecreatetruecolor(200, 60); //设置填充颜色 $bgcolor = imagecolorallocate($image, 255, 255, 255); //填充 imagefill($image, 0, 0, $bgcolor); //随机数据 $str = '的一是在不了有和人这中大为上个国我以要他时

Java基于springMVC的验证码案例

1 ``` 2 Java验证码案例(基于springMVC方式) 3 4 验证码工具类 5 package com.ekyb.common.util; 6 7 import java.awt.Color; 8 import java.awt.Font; 9 import java.awt.Graphics; 10 11 import java.awt.image.BufferedImage; 12 import java.util.ArrayList; 13 import java.util.A

【原创】用C#.NET开发通用的验证码识别组件

相信大家在开发过程中,基本都用到过验证码识别程序.一提到验证码识别,绝大多数兄弟想到的都是用C++的效率配上牛逼哄哄的二值化.边缘检测等算法来实现.但这种识别方式的依赖性太强,不可重用,无法扩展,假设对方稍微修改下验证码的变形算法(做过网站的都知道有多简单),可能你累死累活搞出来的识别程序就全部作废了. 这里讲个我们公司的例子,为了识别支付宝登录的验证码,公司花大价钱请了一位牛人B用C++写了个支付宝验证码识别的DLL并做了导出,供我们在.NET平台下直接调用.当我们项目开发快结束的时候,这货竟