使用JQuery和s3captche实现一个水果名字的验证

lg薄荷茶

lg薄荷茶

2016-02-19 15:09

下面是个使用JQuery和s3captche实现一个水果名字的验证教程,撑握了其技术要点,学起来就简单多了。赶紧跟着图老师小编一起来看看吧!

先看个图片:

1.介绍:

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)

s3captcha是一个非常有用的可以让图片顺序显示的一个JQuery插件。它是通过php实现的。但是我发现很容易把它转化为asp.net和C#的代码。 我做了一个config的配置文件可以在文件中配置图片的源和名字等。

然后介绍一下s3captcha的实现原理,

上图所示是它的实现模式。
1.它随即生成图片的index;
2.把一系列随机数据赋给图片的index.
3.可以从图片列表中选择一个随机的index.
4.让图片随机的显示为一个radio box.
它使用JQuery实现的radio box到图片List的转换。
2.代码:
首先是把图片的index数组顺序打乱,重新输出:

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)代码如下:
public static Listint shuffle(Listint input)
{
Listint output = new Listint();
Random rnd = new Random();

int FIndex;
while (input.Count 0)
{
FIndex = rnd.Next(0, input.Count);
output.Add(input[FIndex]);
input.RemoveAt(FIndex);
}

input.Clear();
input = null;
rnd = null;

return output;
}

使用xml来作为s3captche的配置文件:
代码如下:
?xml version="1.0" encoding="utf-8" ?
s3capcha
icons
nameapple,cherry,lemon,pear,strawberry/name
titleApple,Cherry,Lemon,Pear,Strawberry/title
width33/width
height33/height
extjpg/ext
folderfruit/folder
/icons
messageVerify that you are a human not robot, please choose {0}/message
/s3capcha

GetHtmlCode的代码:
代码如下:
public static string GetHtmlCodes(string PathTo, out int SessionValue)
{
bool HasValue = false;
if (string.IsNullOrEmpty(Message))
HasValue = LoadConfig();
else
HasValue = true;

if (HasValue)
{
Random Rnd = new Random();
int RandomIndex = Rnd.Next(0,IconNames.Length);

Listint values = new Listint();
for(int i = 0; i IconNames.Length;i++)
values.Add(i);
values = shuffle(values);

string WriteThis = "div class="s3capcha"p" +
string.Format(Message, "strong" + IconTitles[values[RandomIndex]] +
"/strong") + "/p";

int[] RandomValues = new int[IconNames.Length];
for (int i = 0; i IconNames.Length; i++)
{
RandomValues[i] = Rnd.Next();
WriteThis += string.Format(RowTemplate,
IconTitles[values[i]], RandomValues[i],
PathTo + "/icons/" + Folder + "/" +
IconNames[values[i]] + "." + Extention,
Width, Height);
}
WriteThis += "div style="" style="""clear:left"/div/div";
SessionValue = RandomValues[RandomIndex];
return WriteThis;
}
else
{
SessionValue = -1;
return "Invalid data, config file not found";
}
}

3.使用ajax方法来实现验证信息的判断弹出框:
s3capcha.ashx 用来实现当向服务器请求时,返回html:
代码如下:
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/html";

int USession;
context.Response.Write(s3capcha.GetHtmlCodes("../../s3capcha", out USession));
context.Session[s3capcha.s3name] = USession;

context.Response.End();
}

verify.ashx文件·来实现验证功能:
代码如下:
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";

if (s3capcha.Verify(context.Session[s3capcha.s3name],
context.Request.Form[s3capcha.s3name]))
context.Response.Write("Success");
else
context.Response.Write("Fail");

context.Response.End();
}

JQuery实现的ajax代码:
代码如下:
//Javascript codes
$(document).ready(function() {
getCapcha();
$("form").bind('submit', function() {
$.ajax({
url: 'verify.ashx',
type: 'POST',
data: { 's3capcha': $("input[name=s3capcha]:checked").val() },
cache: false,
success: function(data) {
alert(data);
getCapcha();
}
});
return false;
});
});

展开更多 50%)
分享

猜你喜欢

使用JQuery和s3captche实现一个水果名字的验证

Web开发
使用JQuery和s3captche实现一个水果名字的验证

jquery validation插件表单验证的一个例子

Web开发
jquery validation插件表单验证的一个例子

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

基于JQuery.timer插件实现一个计时器

Web开发
基于JQuery.timer插件实现一个计时器

JavaScript需要一个新名字

Web开发
JavaScript需要一个新名字

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

一个即时表单验证的javascript代码

Web开发
一个即时表单验证的javascript代码

jquery ajax 登录验证实现代码

Web开发
jquery ajax 登录验证实现代码

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

JSP操作用以提高数据库访问效率

JSP操作用以提高数据库访问效率

Excel公式计算不准、函数计算错误

Excel公式计算不准、函数计算错误
下拉加载更多内容 ↓