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

php获取验证码

发布时间: 2023-02-14 13:59:55

php 验证码

大哥!!!
哪里没有起作用了啊!????
checknum.php
你看最后一行你写了什么???
session_destroy();
你都销毁了所有的SESSION
那么你在code_check.php
肯定是看不到 $_SESSION['CODE'];的啊!!!
你删除session_destroy();看下
还有就是你在code_check.php这个页面中
$_SESSION['CODE'];大小写错了!!!
应该是$_SESSION['code'];,拜托以后看清楚啊!!

② PHP 验证码

问题一、你的验证码代码,没有发现开启session,也没有将随机产生的字符串保存到session,没保存,自然就无法比对
问题二、要点击一下刷新,其实很简单,给图片加一个点击事件,让图片重新请求一次服务器执行php验证码文件,需要注意的是,有于缓存的关系,在重新请求服务器的时候,给验证码图片路径加一个随机参数,防止刷新而验证码不变化,代码示例如下:
<img src='code.php' onclick="this.src='code.php?'+Math.random();" />

③ 如何用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);

④ 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的GD库,原理很简单,就是先建立一张空白图片,然后把验证码的图片使用PHP
GD库中的imagecreatefromjpeg函数建立一个image对象,最后计算图片的长宽,再次使用PHP内置的image复制到一开始建立的空白图片上去。
全部代码如下:
header("Content-type:image/png");
set_time_limit(0);//设置PHP超时时间
$url
=
$_GET['url'];
$url
=
"http://vcer..com/verify";
$imginfo
=
GetImageSize
(
$url
);
$imgw
=
$imginfo
[0];
$imgh
=
$imginfo
[1];
$bg
=
imagecreatetruecolor($imgw,$imgh);
$image
=
imagecreatefromjpeg($url);
imagecolorallocate($image,255,255,255);
image($bg,$image,0,0,
0,0,$imgw,$imgh);
imagedestroy($image);
ImagePng($bg);
此处的代码支持验证码格式为jpg的格式,如果是png或者gif的格式可以参考第二页。
通过上一页一个获取验证码图片到本地的PHP程序,对于验证码为jpg格式的图片是可以正常输出的,对于png、gif的验证码则不能正常使用,今天稍微修改一下PHP代码,使其可以支持png、gif、jpg三种格式的验证码。
PHP判断图片的格式可使用php内置的exif_imagetype函数,非常方便,
关于exif_imagetype的详细使用方法可以访问:http://php.net/manual/en/function.exif-imagetype.php
header("Content-type:image/png");
set_time_limit(0);//设置PHP超时时间
$url
=
$_GET['url'];
$url
=
"http://vcer..com/verify";
if(empty($url)){
echo
"没有图片";
die;
}
$imginfo
=
GetImageSize
(
$url
);
$type
=
exif_imagetype($url);
$imgw
=
$imginfo
[0];
$imgh
=
$imginfo
[1];
$bg
=
imagecreatetruecolor($imgw,$imgh);
if($type==IMAGETYPE_GIF){
$image
=
imagecreatefromgif($url);
}elseif($type==IMAGETYPE_JPEG){
$image
=
imagecreatefromjpeg($url);
}elseif($type==IMAGETYPE_PNG){
$image
=
imagecreatefrompng($url);
}
imagecolorallocate($image,255,255,255);
image($bg,$image,0,0,
0,0,$imgw,$imgh);
imagedestroy($image);
ImagePng($bg);

⑥ php验证码怎么实现

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

在此之前必须打开php的GD库,修改php.ini文件的配置,取消extension=php_gd2.dll前面的分号。代码如下:

<?php

session_start();

//生成验证码图片

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

$im = imagecreate(44,18);

$back = ImageColorAllocate($im, 245,245,245);

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

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

//生成4位数字

for($i=0;$i<4;$i++){

$font = ImageColorAllocate($im, rand(100,255),rand(0,100),rand(100,255));

$authnum=rand(1,9);

$vcodes.=$authnum;

imagestring($im, 5, 2+$i*10, 1, $authnum, $font);

}

for($i=0;$i<100;$i++) //加入干扰象素

{

$randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));

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

}

ImagePNG($im);

ImageDestroy($im);

$_SESSION['Checknum'] = $vcodes;

?>

2. 显示验证码图片

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

<input type="text" name="passcode" >

<img src="code.php">

3.判断并获取验证码的值

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

...

session_start();//启动会话

$code=$_POST["passcode"];

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

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

运行截图:

望采纳,谢谢

⑦ php 怎么获取验证码的值

$_SESSION["vcode"] = $vcode;
验证码的值就在 $_SESSION["vcode"] 里面。

⑧ 下面段php代码怎么得到验证码的值啊(在页面里面直接输出就可以)。

最后两句:
$name=$_SESSION[ 'str'];
echo $name;
去掉,因为这个php实际上表现为一个图片,你echo是不会有值的
最后填一句 $_SESSION[ 'str'] = $str;
把这个文件保存为checkimg.php
然后,新建一个同级目录下的php文件
a.php 如下:
<?php
session_start();
?>
<img src="checkimg.php"/>
验证码是:
<?
echo $_SESSION["str"];
?>

⑨ php验证码

你把下面语句修改一下:
echo"验证码不正确";//否则输出失败
增加调试信息,修改后如下:
echo"验证码不正确(str=$_SESSION[str],name=$name)";//否则输出失败

看看输出的信息是什么,然后就容易知道结果了。

⑩ php 怎么获取验证码的值,接着怎么写

验证码一般都保存在session中,打印一下session的值,就能看到验证码对应的字段、值;
mp($_SESSION);

热点内容
摩尔庄园脚本容易检测吗 发布:2024-11-08 16:54:47 浏览:755
易享服务器地址 发布:2024-11-08 15:55:59 浏览:752
爱奇艺的密码哪里看 发布:2024-11-08 15:52:45 浏览:533
安卓10和平板哪个更流畅 发布:2024-11-08 15:51:18 浏览:75
配置低也能玩的枪战游戏有哪些 发布:2024-11-08 15:41:59 浏览:169
python中文匹配 发布:2024-11-08 15:41:06 浏览:400
通分新算法 发布:2024-11-08 15:37:01 浏览:370
安卓多乐够级为什么没有捕鱼 发布:2024-11-08 15:32:27 浏览:657
高级数据库系统 发布:2024-11-08 15:32:14 浏览:540
adovc数据库 发布:2024-11-08 15:32:11 浏览:541