php 字母和数字验证码
//验证码
<?php
//实现简单的验证码 //session_start
session_start();
//画布
$image = imagecreatetruecolor(100, 30);
//设置填充颜色
$bgcolor = imagecolorallocate($image, 255, 255, 255);
//填充
imagefill($image, 0, 0, $bgcolor); //随机数据
//session
$captcha_code = '';
for ($i = 0; $i < 4; $i++) {
$fontsize = 5;
$fontcolor = imagecolorallocate($image, mt_rand(0, 120), mt_rand(0, 120), mt_rand(0, 120));
$data = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
// echo strlen($data);
// echo substr($data,61,1);
$font = substr($data, mt_rand(0, strlen($data) - 1), 1);
$captcha_code .= $font;
$width = ($i * 100) / 4 + mt_rand(5, 10);
$height = mt_rand(5, 10);
//添加
imagestring($image, $fontsize, $width, $height, $font, $fontcolor);
}
//保存到session
$_SESSION['authcode'] = $captcha_code;
//干扰
//像素点
for ($i = 0; $i < 200; $i++) {
$pixcolor = imagecolorallocate($image, mt_rand(20, 200), mt_rand(20, 200), mt_rand(20, 200));
imagesetpixel($image, mt_rand(0, 99), mt_rand(0, 29), $pixcolor);
} //线
for ($i = 0; $i < 4; $i++) {
$linecolor = imagecolorallocate($image, mt_rand(50, 220), mt_rand(50, 220), mt_rand(50, 220));
imageline($image, mt_rand(0, 99), mt_rand(0, 29), mt_rand(0, 99), mt_rand(0, 99), $linecolor);
}
//输出
header('Content-type: image/png');
imagepng($image);
//销毁
imagedestroy($image);
//验证表单
<?php
if (isset($_REQUEST['authcode'])) {
session_start();
//判断
if (strtolower($_REQUEST['authcode'] == strtolower($_SESSION['authcode']))) {
echo '恭喜你输入正确!';
} else {
echo '输入失败!';
}
exit();
}
?>
<html>
<head>
<title>验证码提交</title>
</head>
<body>
<form action="./form.php" method="post">
<p>验证码:<img src="./code01.php" id="captcha_img" alt="验证码" width="100" height="30" border="1px"></p>
<a href="javascript:void(0)" onclick="document.getElementById('captcha_img').src='./code01.php?r='+Math.random()">看不清?</a>
<p>
<label for="authcode">请输入图片中的内容: </label>
<input type="text" name="authcode" id="authcode"/>
</p> <p><input type="submit" value="submit"/></p>
</form>
</body>
</html>
php 字母和数字验证码的更多相关文章
- JavaScript 编写随机四位数验证码(大小写字母和数字)
1.JavaScript编写随机四位数验证码,用到的知识点为: a.Math对象的随机数:Math.random() b.Math对象的取整 :Math.floor() c.处理所需要的下标个数 ...
- 字母数字、字母、汉字验证码 (java)
原文:http://blog.csdn.net/qh_java/article/details/49854477 一.字母数字,字母,汉字验证码的生成代码 1.字母数字验证码: package com ...
- 务必收藏备用:.net core中通过Json或直接获取图形验证码(数字验证码、字母验证码、混合验证码),有源代码全实战demo(开源代码.net core3.0)
很多人写的博客大家看了会一知半解,不知道怎么用,应该引用什么类库或者代码不全,这样很多小白很是头疼,尤其是尝新技术更是如此.我们这边不止告诉你步骤,而且还提供开源demo.随着时间的推移,我们的dem ...
- 绘制字母和数字组合的验证码(原生php)
<?php $font = array('font/FZZQJW.TTF','font/STHUPO.TTF');//字体 $str = '689acdefhjkmnpqrtuvwxyACDEF ...
- java中获取字母和数字的组合
package com.ccytsoft.wkc.util; import java.util.ArrayList; import java.util.List; import java.util.R ...
- Python 过滤字母和数字
[前言]在写爬虫时,正则表达式有时候比较难写,一个是自己不熟练,二者数据分析提取数据千奇百怪. 一.好在python有个re模块,提供了很多更加简便的方法:可参考此文档:https://www.cnb ...
- 随机生成长度为len的密码,且包括大写、小写英文字母和数字
一道华三面试题,随机生成长度为len的密码,且包括大写.小写英文字母和数字,主要Random类的使用,random.nextInt(len)表示生成[0,len)整数.具体实现见下面代码,已经很详细了 ...
- C语言习题1.分别统计一下其中字母,数字,其他字符的个数。将统计的字母,数字,其他字符的个数以柱状图的形式打印
从键盘上输入字符,(1)分别统计一下其中字母,数字,其他字符的个数, (2)将统计的字母,数字,其他字符的个数以柱状图的形式打印.例如 5 ***** ***** 3 ***** **** ...
- Java中过滤出字母、数字和中文的正则表达式
1.Java中过滤出字母.数字和中文的正则表达式 (1)过滤出字母的正则表达式 [^(A-Za-z)] (2)过滤出数字的正则表达式 [^(0-9)] (3)过滤出中文的正则表达式 [^(\\u4e0 ...
随机推荐
- html5_storage存取实例
<script src="jquery-1.8.3.js"></script><script>function set(){ var tt ...
- 【c#】设置Socket连接、接收超时
用到Socket,发现如果连接错误,比如Connect的端口不对,会造成很长时间的延时,程序就僵在那里,效果很不好: 在网上找到很方便的设置办法,分享如下: Socket.SetSocketOptio ...
- Javascript实现真实字符串剩余字数提示
//文本框剩余字数提示(字符大小) function textLimitCheckSj(thisArea, maxLength, SpanId) { var str = thisArea.value; ...
- atitit.验证码识别step3----去除边框---- 图像处理类库 attilax总结java版本
atitit.验证码识别step3----去除边框---- 图像处理类库 attilax总结java版本 1. 去除边框思路原理 1 2. Thumbnailator 是一个用来生成图像缩略图.裁切. ...
- zooKeeper_《ZooKeeper官方指南》一致性保障
转 http://ifeve.com/zookeeper-consistency-guarantees/ 本文翻译自<ZooKeeper官方指南>,译者:追云,校对:追云 一致性保障 Zo ...
- JS高程3:面向对象的程序设计——理解对象
JS中对象的定义: (无序)属性的集合 (无序)值的集合 (无序)名值对的集合 JS对象是基于引用数据类型来创建的. JS对象创建的2种方式: 传统方式 对象字面量 var person = new ...
- cocos2dx3.1 win7安装步骤及编译到安桌
1. 下载及安装好工具 python2.7 ndk sdk ant cocos2dx3.1 eclipse 这些工具和曾经一样下载好放到同一文件夹下 加入环境变量 将python2.7的安装路径加入 ...
- jsp时间格式化
<fmt:formatDate value="${start.time }" pattern="HH:mm" />
- easyUI的column的field的颜色属性
{field:'hasPrintStr',title:'状态',width:10,halign:'center',align:'right',styler: function(value,row,i ...
- XV Open Cup named after E.V. Pankratiev Stage 6, Grand Prix of Japan Problem J. Hyperrectangle
题目大意: 给出一个$d$维矩形,第i维的范围是$[0, l_i]$. 求满足$x_1 + x_2 + ...x_d \leq s$ 的点构成的单纯形体积. $d, l_i \leq 300$ 题解: ...