Login
网站首页 > 文章中心 > 其它

php编程每天必学之验证码

作者:小编 更新时间:2023-09-23 11:54:26 浏览量:339人看过

php验证码怎么实现

①?新建code.php验证码生成文件

php

session_start();

//生成验证码图片

Header("Content-type: image/PNG");

imagefill($im,0,0,$back); //背景

srand((double)microtime()*1000000);

$vcodes.=$authnum;

}

for($i=0;$i100;$i◆◆) //加入干扰象素

{

imagesetpixel($im, rand()p , rand()0 , $randcolor);

ImagePNG($im);

ImageDestroy($im);

$_SESSION['Checknum'] = $vcodes;

② 显示验证码图片

在需要显示验证码的页面中加入

input type="text" name="passcode"

img src="code.php"

③判断并获取验证码的值

验证码是通过第一步骤代码中的$_SESSION['Checknum'] = $vcodes;赋的值,所以验证码的值存在$_SESSION['Checknum']当中.在验证页面,使用以下代码,

...

session_start();//启动会话

$code=$_POST["passcode"];

if( $code == $_SESSION["Checknum"])

{...}即可完成验证码登录.

运行截图:

望采纳,谢谢

如何用PHP生成验证码

PHP生成验证码的原理:使用PHP的GD库,生成一张带验证码的图片,并将验证码保存在Session中.PHP生成验证码的大致流程有:

①.、产生一张png的图片;

②.、为图片设置背景色;

③.、设置字体颜色和样式;

⑤.、把产生的每个字符调整旋转角度和位置画到png图片上;

⑥.、加入噪点和干扰线防止注册机器分析原图片来恶意破解验证码;

⑦.、输出图片;

⑧.、释放图片所占内存.

session_start();?

function?getCode($num,$w,$h)?{?

$code?=?"";?

for?($i?=?0;?$i?$num;?$i◆◆)?{?

}?

//将生成的验证码写入session,备验证时用?

$_SESSION["helloweba_num"]?=?$code;?

//创建图片,定义颜色值?

header("Content-type:?image/PNG");?

$im?=?imagecreate($w,?$h);?

$black?=?imagecolorallocate($im,?0,?0,?0);?

//填充背景?

imagefill($im,?0,?0,?$gray);?

//画边框?

imagerectangle($im,?0,?0,?$w-1,?$h-1,?$black);?

//随机绘制两条虚线,起干扰作用?

$style?=?array?($black,$black,$black,$black,$black,?

$gray,$gray,$gray,$gray,$gray?

);?

imagesetstyle($im,?$style);?

$y1?=?rand(0,?$h);?

//在画布上随机生成大量黑点,起干扰作用;?

imagesetpixel($im,?rand(0,?$w),?rand(0,?$h),?$black);?

//将数字随机显示在画布上,字符的水平间距和位置都按一定波动范围随机生成?

imagepng($im);//输出图片?

imagedestroy($im);//释放图片所占内存?

php如何实现验证码?许昌鲤鱼IT计算机电脑软件编程培训中心

验证码在表单实现越来越多了,但是用js的写的验证码,总觉得不方便,所以学习了下php实现的验证码.好吧,其实是没有事情干,但是又不想浪费时间,所以学习了下php实现验证码.正所谓,技多不压身.而且,也可以封装成一个函数,以后使用的时候也是很方便的,当然现在未封装.

现在来说说简单的纯数字验证码吧.

如果是初学者,建议按照我代码的注释 //数字 一步步来.最简单的方法,还是把整个代码复制走了.

新建一个captcha.php:

php //10设置session,必须处于脚本最顶部

imagefill($image, 0, 0, $bgcolor); //10设置变量

//设置字体颜色,随机颜色

//设置数字

$captcha_code .= $fontcontent;

//设置坐标

imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor);

} //10存到session

//imagesetpixel — 画一个单一像素

imagedestroy($image);

接着就是静态页的代码了:index.html

doctype htmlhtml

head

title确认验证码title

body

form method="post" action="./form.php"

p

P请输入验证码:input type="text" name='authcode' value=''/p

bodyhtml

从index.html可以看到,提交的表单是到form.php的,所以还要有一个判断的form.php代码:

//isset()检测变量是否设置

if(isset($_REQUEST['authcode'])){ session_start(); //strtolower()小写函数

if(strtolower($_REQUEST['authcode'])== $_SESSION['authcode']){ //跳转页面

echo "script language=\"javascript\""; echo "document.location=\"./form.php\""; echo "/script";

}else{ //提示以及跳转页面

echo "script language=\"javascript\""; echo "alert('输入错误!');"; echo "document.location=\"./form.php\""; echo "/script";

} exit();

废话不多说了,拉代码吧.

//设置需要随机取的值,去掉容易出错的值如0和o

$fontcontent = substr($data, rand(0,strlen($data)),1); //10.=连续定义变量

其他的两个页面,不许要修改.

一般而言,现在就已经够用了.但是就像动漫一样,总会有番外.

那么,我们来个汉字的番外吧.其实我也准备将汉字的验证码放到我的毕业设计里面,虽然现在很流行滑动验证码,但是本人毕竟不是专门学习js的.

php //11设置session,必须处于脚本最顶部

session_start(); //1设置验证码图片大小的函数

//11

//随机选取中文

$in = rand(0,count($strdb)); $cn = $strdb[$in]; //将中文记录到将保存到session的字符串中

$captcha_code .= $cn; /*imagettftext (resource $image ,float $size ,float $angle ,int $x ,int $y,int $color,

string $fontfile ,string $text ) 幕布 ,尺寸,角度,坐标,颜色,字体路径,文本字符串

mt_rand()生成更好的随机数,比rand()快四倍*/

} //11存到session

} //10增加干扰元素,设置线

其他的页面也是不需要修改的.

效果图如下:

php 验证码 使用

你访问?http://你地址/上述程序的文件名.php?action=verifycode

这样就可以看到图片了,同理插入到登录框用

img?src="http://你地址/上述程序的文件名.php?action=verifycode"/

就可以了

-------------------------

leboc代码你都没看懂,$_GET["action"]=="verifycode"?是判断动作的,当动作为verifycode的时候调用rand_create()函数产生一个随机验证码.不是你说的

"每个验证码不会都是"verifycode"?吧?".而是每次调用验证码都要用verifycode

补充回答-----------------------------------

弹出迅雷?请确认你的电脑支持PHP,的运行环境.

我用你的代码保存为c.php,保存在服务器上,

同时,建立一个1.html,代码内容仅为

img?src="c.php?action=verifycode"/.存放与c.php同一目录.

运行后是可以正常显示验证码的.

以上就是土嘎嘎小编为大家整理的php编程每天必学之验证码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章