php注册登录时生成的验证码
http://blog.sina.com.cn/s/blog_8173443e01012l82.html
记得我学php时第一件事就是研究登陆注册。当然,登陆少不了验证码。两年过去了,昨天突然想用个验证码却找不到代码了,现在找到了,贴出来吧。防止我这个马大哈再找不到。随机生成四位数字符串,可以是数字也可以是数字和字母。
authimg.php生成验证码的文件:
<?
$IsLetter = false; //是否出现字母
session_start();
$Num = $_GET["n"];
//生成验证码图片
header("Content-type: image/PNG");
$im = imagecreate(46,20);
srand((double)microtime()*1000000);
$Red = rand(0,200);
$Green = rand(0,200);
$Blue = rand(0,200);
$Color = imagecolorallocate($im, $Red, $Green, $Blue);
$BackGround = imagecolorallocate($im, 255,255,255);
imagefill($im,0,0,$BackGround);
if($IsLetter)
{
$a = substr(md5($Num*10000000000000000),0,1);
$b = substr(md5($Num*10000000000000000),4,1);
$c = substr(md5($Num*10000000000000000),8,1);
$d = substr(md5($Num*10000000000000000),12,1);
}
else
{
$a = substr(hexdec(md5($Num*10000000000000000)),2,1);
$b = substr(hexdec(md5($Num*10000000000000000)),3,1);
$c = substr(hexdec(md5($Num*10000000000000000)),4,1);
$d = substr(hexdec(md5($Num*10000000000000000)),5,1);
}
$Authnum = strtoupper($a.$b.$c.$d);
$_SESSION["Authnum"] = $Authnum;
imagestring($im, 5, 5, 2, $Authnum, $Color);
for($i=0;$i<200;$i++) //加入干扰象素
{
$randcolor = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im, rand()p , rand()0 , $randcolor);
}
imagepng($im);
imagedestroy($im);
?>
需要显示验证码的文件:
<?
session_start();
$AuthInput = $_POST["AuthInput"];
$action = $_GET["action"];
?>
<script language="javascript">
function lyalert(){
if( addform.AuthInput.value=="") {
alert("请填写验证码");
document.addform.AuthInput.focus();
return false;
}
}
</script>
<form name="addform" method="post" action="?action=save" id="addform" onsubmit="return lyalert()">
<table width="500" border="1" cellpadding="5" cellspacing="0">
<tr><td>验证码:</td>
<td><input name="AuthInput" type="text" id="AuthInput" size="8" maxlength="4" /><script>document.write("<img src=\"authimg.php?n=",Math.random(),"\" />");</script></td></tr>
<tr><td colspan="2" align="center"><input type="submit" name="Button1" value="确定" id="Button1" /></td>
</tr>
</table>
<p> </p>
</form>
<?
if($action=='save')
{
if ($_SESSION["Authnum"] != $AuthInput)
{
?>
<script language="javascript">
alert("验证码输入不正确");
</script>
<?
}
else
{
?>
<script language="javascript">
alert("提交成功!");
</script>
<?
}
}
?>
php注册登录时生成的验证码的更多相关文章
- python配合Fiddler获取windows app登录时生成cookie实例
工具Fiddler/python3 打开Fiddler,清空一下Fidder里面的请求记录 打开app,进行登录,注意Fiddler里的请求变化 在弹出app登录的时候Fiddler里已经有了四个请求 ...
- Linux下部署SSH登录时的二次身份验证环境记录(利用Google Authenticator)
一般来说,使用ssh远程登录服务器,只需要输入账号和密码,显然这种方式不是很安全.为了安全着想,可以使用GoogleAuthenticator(谷歌身份验证器),以便在账号和密码之间再增加一个验证码, ...
- 【原创】基于phpGrace+uniApp开发之:5.登录界面增加图片验证码
1.目的: 采用phpGrace中的图片验证码,在用户名+密码登录时使用图片验证码进行验证. 2.文档地址: 图片验证码的文档地址:http://www.phpgrace.com/tools/info ...
- Maven + SSM + Kaptcha 实现用户登录时验证码的获取(问题:302 Found)
pom.xml(对Kaptcha.jar的引用) <!-- 验证码 jar kaptcha--> <dependency> <groupId>com.github. ...
- shiro 和spring集合 实现登录时输入验证码并校验(七)
编写实现验证码的主体实现类:CaptchaCode import java.util.UUID; import javax.servlet.http.HttpServletRequest; impor ...
- 第一百八十七节,jQuery,知问前端--cookie 插件,注册成功后生成cookie,显示登录状态
jQuery,知问前端--cookie 插件 学习要点: 1.使用 cookie 插件 2.注册直接登录 Cookie 是网站用来在客户端保存识别用户的一种小文件.一般来用库可以保存用户登 录信息.购 ...
- nodejs:注册登录session出错以及连接Mongodb数据库时Error connecting to database解决方案
(1)nodejs:注册登录session出错 解决办法: 在app.js 中将var MongoStore = require(connect-mongo')改为var MongoStore = ...
- Spingmvc项目注册登录图片验证码(比较灵活的验证码)
最近项目中注册模块要加一个图片验证码功能. 写下来记录下. 1:首先用什么实现,我用的servlet. 后台java代码:RandomValidateCode 类 ,这个类是生成随即验证码和干扰线,可 ...
- 一步步开发自己的博客 .NET版(3、注册登录功能)
前言 这次开发的博客主要功能或特点: 第一:可以兼容各终端,特别是手机端. 第二:到时会用到大量html5,炫啊. 第三:导入博客园的精华文章,并做分类.(不要封我) 第四:做 ...
随机推荐
- Spring读取加密属性文件处理
引言:Spring框架俨然已经是目前Java WEB项目开发的一个宠儿,更有人将Spring, Struts,和Hibernage称之为Java WEB项目开发的3件利器.Spring的依赖.注入.A ...
- Installing EF Power Tools into VS2015
TLDR: If you don’t want to do the tasks (even though they are so easy) you can download the updated ...
- oracle nologging用法
一.oracle日志模式分为(logging,force logging,nologging) 默认情况是logging,就是会记录到redo日志中,force logging是强制记录日志,nolo ...
- 如何将SQL Server运行到Windows Azure上
从2012年6月6日开始,Windows Azure上一些强大的新功能现在可用于预览,包括新的Windows Azure虚拟机(VM).其中有关Windows Azure虚拟机最强大的一件事是他们利用 ...
- 【原创】关于hashcode和equals的不同实现对HashMap和HashSet集合类的影响的探究
这篇文章做了一个很好的测试:http://blog.csdn.net/afgasdg/article/details/6889383,判断往HashSet(不允许元素重复)里塞对象时,是如何判定set ...
- 如何在Maven官网下载到历史版本
历史版本一般会隔一段时间,便找不到,官网会及时显示的是最新版本.不多说,直接进入. https://archive.apache.org/dist/maven/binaries/ 成功在Maven官网 ...
- 注册表-在IE上永久显示我的名字"www.baidu.com - 朱建强"
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\新建字符串 名为:window title值为:"朱建强"
- A Tour of Go Range
The range form of the for loop iterates over a slice or map. package main import "fmt" , , ...
- 东芝超级本从win8到win7
东芝超级本从win8到win7 2014年2月20日 11:08:46 1. 进入BIOS 调出关机选项,按住shift不松手,然后点选关机,彻底关机后,按住f2不松手,按下电源开机,就进 ...
- NOIopenjudge 407:Heritage
总时间限制: 5000ms 内存限制: 65536kB 描述 Your rich uncle died recently, and the heritage needs to be divided ...