php 驗(yàn)證碼 驗(yàn)證


1:HTML:

<input type="text" name="verify" required lay-verify="required" class="layui-input layui-input-inline" value="" class="input-val">

<canvas id="canvas" width="100" height="43" ></canvas>

<input type="hidden" name="show" value=""/>

2js驗(yàn)證:


<script src="{{ URL::asset('js/jquery.min.js') }}"></script>

? ? $(function(){

var show_num = [];

? ? ? ? draw(show_num);

? ? ? ? $("input[name='show']").val(show_num);

? ? ? ? $("#canvas").on('click',function(){

draw(show_num);

? ? ? ? ? ? $("input[name='show']").val(show_num);

? ? ? ? })

// $(".btn").on('click',function(){

//

// })

? ? })

function draw(show_num) {

var canvas_width=$('#canvas').width();

? ? ? ? var canvas_height=$('#canvas').height();

? ? ? ? var canvas = document.getElementById("canvas");//獲取到canvas的對(duì)象锦爵,演員

? ? ? ? var context = canvas.getContext("2d");//獲取到canvas畫圖的環(huán)境夜只,演員表演的舞臺(tái)

? ? ? ? canvas.width = canvas_width;

? ? ? ? canvas.height = canvas_height;

? ? ? ? var sCode ="A,B,C,E,F,G,H,J,K,L,M,N,P,Q,R,S,T,W,X,Y,Z,1,2,3,4,5,6,7,8,9,0";

? ? ? ? var aCode = sCode.split(",");

? ? ? ? var aLength = aCode.length;//獲取到數(shù)組的長(zhǎng)度

? ? ? ? for (var i =0; i <=3; i++) {

var j = Math.floor(Math.random() * aLength);//獲取到隨機(jī)的索引值

? ? ? ? ? ? var deg = Math.random() *30 * Math.PI /180;//產(chǎn)生0~30之間的隨機(jī)弧度

? ? ? ? ? ? var txt = aCode[j];//得到隨機(jī)的一個(gè)內(nèi)容

? ? ? ? ? ? show_num[i] = txt.toLowerCase();

? ? ? ? ? ? var x =10 + i *20;//文字在canvas上的x坐標(biāo)

? ? ? ? ? ? var y =20 + Math.random() *8;//文字在canvas上的y坐標(biāo)

? ? ? ? ? ? context.font ="bold 23px 微軟雅黑";

? ? ? ? ? ? context.translate(x, y);

? ? ? ? ? ? context.rotate(deg);

? ? ? ? ? ? context.fillStyle =randomColor();

? ? ? ? ? ? context.fillText(txt, 0, 0);

? ? ? ? ? ? context.rotate(-deg);

? ? ? ? ? ? context.translate(-x, -y);

? ? ? ? }

for (var i =0; i <=5; i++) {//驗(yàn)證碼上顯示線條

? ? ? ? ? ? context.strokeStyle =randomColor();

? ? ? ? ? ? context.beginPath();

? ? ? ? ? ? context.moveTo(Math.random() * canvas_width, Math.random() * canvas_height);

? ? ? ? ? ? context.lineTo(Math.random() * canvas_width, Math.random() * canvas_height);

? ? ? ? ? ? context.stroke();

? ? ? ? }

for (var i =0; i <=30; i++) {//驗(yàn)證碼上顯示小點(diǎn)

? ? ? ? ? ? context.strokeStyle =randomColor();

? ? ? ? ? ? context.beginPath();

? ? ? ? ? ? var x = Math.random() * canvas_width;

? ? ? ? ? ? var y = Math.random() * canvas_height;

? ? ? ? ? ? context.moveTo(x, y);

? ? ? ? ? ? context.lineTo(x +1, y +1);

? ? ? ? ? ? context.stroke();

? ? ? ? }

}

function randomColor() {//得到隨機(jī)的顏色值

? ? ? ? var r = Math.floor(Math.random() *256);

? ? ? ? var g = Math.floor(Math.random() *256);

? ? ? ? var b = Math.floor(Math.random() *256);

? ? ? ? return "rgb(" + r +"," + g +"," + b +")";

? ? }


3:js提交


? ? function login() {

var val=$("input[name='verify']").val().toLowerCase();

? ? ? ? var show=$("input[name='show']").val();

? ? ? ? var num=show.replace(/,/g, "");//去除所有逗號(hào)

? ? ? ? if(val==''){

layer.msg('請(qǐng)輸入驗(yàn)證碼!');

? ? ? ? ? ? return false;

? ? ? ? }else if(val != num){

layer.msg('驗(yàn)證碼錯(cuò)誤处铛!請(qǐng)重新輸入!');

? ? ? ? ? ? return false;

? ? ? ? }

var user=$("input[name='user']").val();

? ? ? ? var tpwd=$("input[name='tpwd']").val();

? ? ? ? var token=$("input[name='_token']").val();

? ? ? ? var url="/admin_login";

? ? ? ? $.ajax({

url:url,

? ? ? ? ? ? dataType:'json',

? ? ? ? ? ? type:'post',

? ? ? ? ? ? data: {'user':user,'tpwd':tpwd,"_token":token},

? ? ? ? ? ? async:false,

? ? ? ? ? ? success:function (info) {

if (info.code ===1) {

setTimeout(function () {

location.href ="/third_apply_list";

? ? ? ? ? ? ? ? ? ? }, 1000);

? ? ? ? ? ? ? ? }

layer.msg(info.msg);

? ? ? ? ? ? },error:function (e) {

//console.log(e.status)

? ? ? ? ? ? }

});

? ? }

//? })

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末痒筒,一起剝皮案震驚了整個(gè)濱河市悉抵,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌见擦,老刑警劉巖钉汗,帶你破解...
    沈念sama閱讀 221,430評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件羹令,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡损痰,警方通過(guò)查閱死者的電腦和手機(jī)福侈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)徐钠,“玉大人癌刽,你說(shuō)我怎么就攤上這事〕⒇ぃ” “怎么了显拜?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,834評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)爹袁。 經(jīng)常有香客問(wèn)我远荠,道長(zhǎng),這世上最難降的妖魔是什么失息? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,543評(píng)論 1 296
  • 正文 為了忘掉前任譬淳,我火速辦了婚禮,結(jié)果婚禮上盹兢,老公的妹妹穿的比我還像新娘邻梆。我一直安慰自己,他們只是感情好绎秒,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,547評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布浦妄。 她就那樣靜靜地躺著,像睡著了一般见芹。 火紅的嫁衣襯著肌膚如雪剂娄。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,196評(píng)論 1 308
  • 那天玄呛,我揣著相機(jī)與錄音阅懦,去河邊找鬼。 笑死徘铝,一個(gè)胖子當(dāng)著我的面吹牛耳胎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播庭砍,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼场晶,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了怠缸?” 一聲冷哼從身側(cè)響起诗轻,我...
    開(kāi)封第一講書(shū)人閱讀 39,671評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎揭北,沒(méi)想到半個(gè)月后扳炬,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體吏颖,經(jīng)...
    沈念sama閱讀 46,221評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,303評(píng)論 3 340
  • 正文 我和宋清朗相戀三年恨樟,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了半醉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,444評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡劝术,死狀恐怖缩多,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情养晋,我是刑警寧澤衬吆,帶...
    沈念sama閱讀 36,134評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站绳泉,受9級(jí)特大地震影響逊抡,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜零酪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,810評(píng)論 3 333
  • 文/蒙蒙 一冒嫡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧四苇,春花似錦孝凌、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,285評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至罗售,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間钩述,已是汗流浹背寨躁。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,399評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留牙勘,地道東北人职恳。 一個(gè)月前我還...
    沈念sama閱讀 48,837評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像方面,于是被迫代替她去往敵國(guó)和親放钦。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,455評(píng)論 2 359