当前位置:首页 » 编程语言 » php时间验证码

php时间验证码

发布时间: 2022-10-22 13:09:10

php验证码解析

同学 具体那看不明白请说
东西太多 不能一一解释

<?php
//产生随机变形随机码
session_start();;/* 开启SESSION 以便其他页面对验证码进行验证*/
$authnum=random(4);//种子

Header("Content-type: image/PNG"); //古例,改不得
$im = imagecreate(55,18); //imagecreate() 新建图像,大小为 x_size 和 y_size 的空白图像。
$red = ImageColorAllocate($im, 52,24,128); //设置背景颜色
$white = ImageColorAllocate($im, 65,223,224);//设置文字颜色
$gray = ImageColorAllocate($im, 0,0,0); //设置杂点颜色
imagefill($im,55,18,$red);
for ($i = 0; $i < strlen($authnum); $i++)
{
imagestring($im, 6, 13*$i+4, 1, substr($authnum,$i,1), $white);
}
for($i=0;$i<50;$i++) imagesetpixel($im, rand()%55 , rand()%48 , $gray); //加入干扰象素
ImagePNG($im); //以 PNG 格式将图像输出到浏览器或文件
ImageDestroy($im);//销毁一图像
$authnum=strtolower($authnum);
$_SESSION['code']=$authnum /* 把验证码的内容赋值给SESSION 以便其他页面验证*/
//产生随机数的函数
function random($length) /* 产生随机数字或者字母 */
{
$hash = '';
$chars = '';
$max = strlen($chars) - 1;
mt_srand((double)microtime() * 1000000);
for($i = 0; $i < $length; $i++) {
$hash .= $chars[mt_rand(0, $max)];

}

return $hash; //又来
}
?>

❷ 用PHP如何做一个手机发送验证码存储,用户接受后再输入验证

发短信得找移动,联通之类的合作,或者简单的就是淘宝 卖的别人提供的接口。
验证码的话就容易了 存session 就设置session_cache_expire() 数据库就加个 过期时间的字段 例如 expiretime int unsigned not null 到时候取出来比较就行

❸ php怎么实现验证码的

验证码功能机制实现思路

  1. 常规的验证码实现:

    a、产生一张png的图片


    b、为图片设置背景色


    c、设置字体颜色和样式


    d、产生4位数的随机的验证码


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


    f、加入噪点和干扰线防止注册机器分析原图片来恶意注册


    g、输出图片


    h、释放图片所占内存


    i、将验证码保存到session或是数据库


    j、将和输入的验证码进行对比

  2. 短信(邮箱)验证码机制:

    a、产生4-6位数的随机的验证码


    b、把产生的每个字符保存到session或是数据库


    c、将验证码发送到用户的手机(邮箱)


    d、用户在规定时间内进行输入


    e、将验证码从session或是数据库中取出


    f、将和输入的验证码进行对比验证

❹ PHP中短信验证码怎样存到数据库中,并设置失效时间

php做短信验证码,需要将手机号,发送的验证码和时间这几个存到数据库,在添加到数据库的时候,要判断里面有没有要存的手机号,有的话,就更新验证码和时间,没有就是添加,在使用验证码判定的时候,取出验证码和时间,判断验证码是否正确,时间是否在自己设置的有效时间段内,整个过程就是这样。

❺ php 验证码 使用

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

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

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

就可以了

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

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

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

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

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

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

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

<imgsrc="c.php?action=verifycode"/>.存放与c.php同一目录.

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

❻ php生成的验证码10分钟内有效如何做

把验证码生成的时候写入数据库,包含当前时间。提交的时候做判断用提交的时间减去生成的时间。超过提示无效。

❼ 如何用PHP生成验证码

php生成验证码,php验证码,php怎样生成验证码?
工具/原料
这个验证码较实用,大家可以应用到项目中。
方法/步骤
1.
<?php
/*设置文件头为图片输出*/
Header("Content-type:image/JPEG");

/*调用生成验证码函数*/
$checkcode=make_rand(4);

/**
*生成验证码字符
*@paramint$length验证码字符长度
*@returnstring
*/
functionmake_rand($length="32"){
$str="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$result="";
for($i=0;$i<$length;$i++){
$num[$i]=rand(0,25);
$result.=$str[$num[$i]];
}
return$result;
}
2.
/*调用输出验证码图片函数*/
getAuthImage($checkcode,160,40);

/**
*生成验证码图片
*@paramstring$text验证码字符
*/
functiongetAuthImage($text,$w,$y){
/*设置图片的宽度和高度*/
$im_x=$w;
$im_y=$y;
/*创建图片*/
$im=imagecreatetruecolor($im_x,$im_y);
$text_c=ImageColorAllocate($im,mt_rand(0,100),mt_rand(0,100),mt_rand(0,100));
$tmpC0=mt_rand(100,255);
$tmpC1=mt_rand(100,255);
$tmpC2=mt_rand(100,255);
$buttum_c=ImageColorAllocate($im,$tmpC0,$tmpC1,$tmpC2);
imagefill($im,16,13,$buttum_c);
3.
/*字体文件*/
$font='t1.ttf';
for($i=0;$i<strlen($text);$i++)
{
$tmp=substr($text,$i,1);
$array=array(-1,1);
$p=array_rand($array);
$an=$array[$p]*mt_rand(1,10);//角度
$size=28;
imagettftext($im,$size,$an,15+$i*$size,35,$text_c,$font,$tmp);
}

/*将字符写入文件中*/
$distortion_im=imagecreatetruecolor($im_x,$im_y);
imagefill($distortion_im,16,13,$buttum_c);
for($i=0;$i<$im_x;$i++){
for($j=0;$j<$im_y;$j++){
$rgb=imagecolorat($im,$i,$j);
if((int)($i+20+sin($j/$im_y*2*M_PI)*10)<=imagesx($distortion_im)&&(int)($i+20+sin($j/$im_y*2*M_PI)*10)>=0){
imagesetpixel($distortion_im,(int)($i+10+sin($j/$im_y*2*M_PI-M_PI*0.1)*4),$j,$rgb);
}
}
}
4.
/*干扰元素点的数量*/
$count=160;
/*创建干扰元素点*/
for($i=0;$i<$count;$i++){
$randcolor=ImageColorallocate($distortion_im,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
imagesetpixel($distortion_im,mt_rand()%$im_x,mt_rand()%$im_y,$randcolor);
}
/*创建干扰线条*/
$rand=mt_rand(5,30);
$rand1=mt_rand(15,25);
$rand2=mt_rand(5,10);
for($yy=$rand;$yy<=+$rand+2;$yy++){
for($px=-80;$px<=80;$px=$px+0.1)
{
$x=$px/$rand1;
if($x!=0)
{
$y=sin($x);
}
$py=$y*$rand2;
imagesetpixel($distortion_im,$px+80,$py+$yy,$text_c);
}
}
5.
/*以PNG格式将图像输出到浏览器*/
ImagePNG($distortion_im);

/*销毁图像*/
ImageDestroy($distortion_im);
ImageDestroy($im);

❽ thinkphp中怎么把手机验证码存入数据库吗,并设置一个失效时间

1、很多存储方式都可行,一般来说存session就行了,并设置失效时间。
2、存验证码的时候建议把手机号作为唯一标识 一起存起来,防止下一个用户的验证码覆盖,(如:$_SESSION['phone'] = '手机号'; $_SESSION['md5('手机号')'] = '验证码'; )。

❾ 怎么用PHP写个验证码

首先,当用户打开页面时随机产生一个session,然后根据这个值生成验证码图片。
第二,将验证码图片显示到表单上。
第三,当用户提交时表单时,比较session里的值与表单中验证码的值进行比较。
简单的实现过程:http://www.nowamagic.net/php/php_CheckCode.php
复杂的验证码图片生成:http://www.admin5.com/article/20080314/75984.shtml

热点内容
如何配置mysql连接数 发布:2024-12-28 09:22:52 浏览:919
手机服务器1p地址怎样设置 发布:2024-12-28 09:08:04 浏览:788
简易安卓编程 发布:2024-12-28 09:08:01 浏览:134
仙剑奇侠传6加密 发布:2024-12-28 08:58:09 浏览:193
金立手机加密短信在哪 发布:2024-12-28 08:53:06 浏览:858
服务器是电脑十手机版下载 发布:2024-12-28 08:39:40 浏览:228
健身房管理系统源码 发布:2024-12-28 08:34:41 浏览:851
登陆器易语言源码 发布:2024-12-28 08:34:33 浏览:160
百度网盘下载源码 发布:2024-12-28 08:30:54 浏览:848
判断访问 发布:2024-12-28 08:30:12 浏览:66