php 验证码

因为项目的需要,要去弄一个登陆时的验证码,毕竟我也是刚毕业才3个月的菜鸟,对验证码的生成过程也不了解。就去网上搜了一下,发现,博文很多,但是对于一穷二白的菜鸟来说,基本都是没有用的。于是自己静下心去看了一上午,终于自己整理出一个适合广大菜鸟的php验证码了。

login.php

//登陆页面

<img src="1.php" onClick="this.src=this.src+'?'+Math.random();"/> 点击图片刷新
<form action="test.php" method="post">
<input type="text" name="yzm" />
<input type="submit" name="submmit" />
</form>

这个页面很简单,就是一个表单。


yzm.php

//验证码的生成和session生成的页面

<?php
	session_start();
    Header("Content-type: image/PNG");
	
    $im = imagecreate(50,18); 
    $back = imagecolorallocate($im, 245,245,245); 
    imagefill($im,0,0,$back); 
    $yzm = "";
	srand((double)microtime()*1000000);
    for($i=0;$i<5;$i++){
    $font = imagecolorallocate($im, rand(100,255),rand(0,100),rand(100,255)); 
    $number=rand(1,9);
    $yzm.=$number;
    imagestring($im, 5, 2+$i*10, 1, $number, $font);
    }
    $_SESSION['yzm'] = $yzm;;
    for($i=0;$i<100;$i++) 
    {
    $randcolor = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
    imagesetpixel($im, rand()%70 , rand()%30 , $randcolor); 
    }
    imagepng($im);
    imagedestroy($im);   
?>

这个页面,生成了一个png格式的图片,同时生成了验证码的session


judge.php

验证页面

<?php 
session_start();
$yzm = $_POST['yzm'];
if($yzm!= $_SESSION['yzm']){echo "错了";}else{echo "对的";}
?>
<a href="login.php">back</a>

这样的三个页面配合起来,就可以实现验证码的功能。






  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值