php仿QQ验证码的实例分析

有需要的朋友,参考下吧。


代码如下:

<?php
/**
 * 仿QQ验证码
*/
//Session保存路径
$sessSavePath = dirname(__FILE__)."/../data/sessions/";
if(is_writeable($sessSavePath) && is_readable($sessSavePath)){ session_save_path($sessSavePath); }
session_start();
//获取随机字符
$rndstring = '';
for($i=0; $i<4; $i++) $rndstring .= chr(mt_rand(65,90));
$img_height=45;    //先定义图片的长、宽
$img_width=10;
//如果支持GD,则绘图
if(function_exists("imagecreate"))
{
 //Firefox部份情况会多次请求的问题,5秒内刷新页面将不改变session
 $ntime = time();
 if(empty($_SESSION['dd_ckstr_last']) || empty($_SESSION['dd_ckstr']) || ($ntime - $_SESSION['dd_ckstr_last'] > 5))
 {
  $_SESSION['dd_ckstr'] = strtolower($rndstring);
  $_SESSION['dd_ckstr_last'] = $ntime;
 }
 $rndstring = $_SESSION['dd_ckstr'];
 $rndcodelen = strlen($rndstring);
 //创建图片,并设置背景色
 $im = imagecreate(46,20);
 ImageColorAllocate($im, 240,243,248);
 //干扰线
 $lineColor1 = ImageColorAllocate($im, mt_rand(174,218),mt_rand(190,225),mt_rand(217,237));
 for($j=1;$j<=2;$j=$j+3)
 {
  imageline($im,0,$j+mt_rand(1,15),48,$j+mt_rand(1,15),$lineColor1);
 }
 //输出文字
 $fontColor = ImageColorAllocate($im, mt_rand(0,150),mt_rand(0,150),mt_rand(0,150));
 for($i=0;$i<$rndcodelen;$i++)
 {
  $bc = mt_rand(0,1);
  $rndstring[$i] = strtoupper($rndstring[$i]);
  imagestring($im,mt_rand(3,5),$i*$img_height/4+mt_rand(1,5),mt_rand(1,$img_width/2), $rndstring[$i], $fontColor);
 }
 header("Pragma:no-cache"r"n");
 header("Cache-Control:no-cache"r"n");
 header("Expires:0"r"n");
 //输出特定类型的图片格式,优先级为 gif -> jpg ->png
 if(function_exists("imagepng"))
 {
  header("content-type:image/png"r"n");
  imagepng($im);
 }
 else
 {
  header("content-type:image/jpeg"r"n");
  imagejpeg($im);
 }
 ImageDestroy($im);
 exit();
}
else
{
 //不支持GD,只输出字母 ABCD
 $_SESSION['dd_ckstr'] = "abcd";
 $_SESSION['dd_ckstr_last'] = '';
 header("content-type:image/png"r"n");
 header("Pragma:no-cache"r"n");
 header("Cache-Control:no-cache"r"n");
 header("Expires:0"r"n");
 $fp = fopen("data/vdcode.jpg","r");
 echo fread($fp,filesize("data/vdcode.jpg"));
 fclose($fp);
 exit();
}
?>

(0)

相关推荐

  • php模拟用户自动在qq空间发表文章的方法

    本文实例讲述了php模拟用户自动在qq空间发表文章的方法.分享给大家供大家参考.具体分析如下: 我们这里是一个简单的利用php来模拟登录后再到QQ空间发送文章的一个简单的程序,有需要的朋友可以参考,或改进可以给我意见,代码如下: 复制代码 代码如下: <?php //模拟get post请求函数 /* 函数说明: 功能:请求方式可以get,post,可以发送的cookie,保存的cookiefile文件 参数:$url-----请求url    $referer---来源url    $post

  • php获取QQ头像并显示的方法

    本文实例讲述了php获取QQ头像并显示的方法.分享给大家供大家参考.具体分析如下: 最近看到博客留言的头像有点别扭,因为游客的头像都是同一个头像,看着不是很舒服.虽然现在绝大多数的主题集成了Gavatar头像功能,先不说gavatar被墙的问题,我自己现在都没弄个gavatar头像. 因为我登陆了几次,连接速度巨慢,所以我就放弃了,当然留言插件也不胜枚举,比如现在比较火的多说,但对于没有注册多说的朋友,头像仍是个问题,对于多说的社交账号绑定,我测试多次,QQ,人人这些主流平台的绑定经常出错,而且

  • php实现QQ空间获取当前用户的用户名并生成图片

    本文实例讲述了php实现QQ空间获取当前用户的用户名并生成图片的方法.分享给大家供大家参考.具体如下: 最近发现空间里经常会转载一些含有当前用户昵称和qq号的图片,很好奇,研究了一下原理 原理很简单,图片是利用php生成的,好吧,直接上代码 图片源代码: <?php $ment = $_SERVER["HTTP_REFERER"]; if($ment == 'http://cnc.qzs.qq.com/qzone/newblog/v5/editor.html'){ header(

  • PHP实现的QQ空间g_tk加密算法

    本文实例讲述了PHP实现的QQ空间g_tk加密算法.分享给大家供大家参考.具体如下: //G_tk计算 function getGTK($skey){ $hash = 5381; for($i=0;$i<strlen($skey);++$i){ $hash += ($hash << 5) + utf8_unicode($skey[$i]); } return $hash & 0x7fffffff; } function utf8_unicode($c) { switch(strl

  • php获取qq用户昵称和在线状态(实例分析)

    QQ通过返回不同的图片,来表示在线或离线,图标也随之变换,既然图片不同,那么,返回的HTTP头信息中的Content-Length 也一定不同,而且,彩色图片一定会比同样子的暗色图片要大,于是,找出某个样式的彩色与暗色图片的中间值,就能达到通过判断头部返回长度的方法来获取QQ在线状态以下是代码 复制代码 代码如下: <?phpfunction get_qq_status($uin){ error_reporting(0); $f=file_get_contents('http://wpa.qq.

  • PHP版QQ互联OAuth示例代码分享

    由于国内QQ用户的普遍性,所以现在各大网站都尽可能的提供QQ登陆口,下面我们来看看php版,给大家参考下 /** * QQ互联 oauth * @author dyllen * */ class Oauth { //取Authorization Code Url const PC_CODE_URL = 'https://graph.qq.com/oauth2.0/authorize'; //取Access Token Url const PC_ACCESS_TOKEN_URL = 'https:

  • PHP获取QQ达人QQ信息的方法

    本文实例讲述了PHP获取QQ达人QQ信息的方法.分享给大家供大家参考.具体分析如下: 补充以下几点: ① 这是一个简单的例程,通过扩展可以轻松获取千万级别QQ信息,$jsonUrl 参数cd=610900 为城市代码 ② QQ达人信息已经做防盗链了,所以在此用到PHP的refer去伪造 http://city.qq.com ③ 本来想做一个QQ邮件群发软件玩玩,但是没有经济价值呵呵,贡献出来大家参考,很简单. 具体代码如下: 复制代码 代码如下: <?php $refer="http://

  • QQ登录 PHP OAuth示例代码

    根据官方文档编写 复制代码 代码如下: <?php /** * 申请http://connect.opensns.qq.com/apply * 列表http://connect.opensns.qq.com/my */ session_start(); $qq_oauth_config = array( 'oauth_consumer_key'=>'*******',//APP ID 'oauth_consumer_secret'=>'******************',//APP

  • php使用curl抓取qq空间的访客信息示例

    config.php 复制代码 代码如下: <?phpdefine('APP_DIR', dirname(__FILE__));define('COOKIE_FILE', APP_DIR . '/app.cookie.txt'); //会话记录文件define('VISITOR_CAPTURE_INTERVAL', 3); //QQ采集间隔define('VISITOR_DATA_UPLOAD_INTERVAL', '');define('THIS_TIME', time()); define(

  • php仿QQ验证码的实例分析

    有需要的朋友,参考下吧. 复制代码 代码如下: <?php/** * 仿QQ验证码*///Session保存路径$sessSavePath = dirname(__FILE__)."/../data/sessions/";if(is_writeable($sessSavePath) && is_readable($sessSavePath)){ session_save_path($sessSavePath); }session_start();//获取随机字符$

  • Java版仿QQ验证码风格图片验证码

    本文为大家分享了Java版仿QQ验证码风格图片验证码,具体内容如下 功能包括:自定义图片尺寸和字符长度,随机背景颜色和字符颜色,随机字符偏移角度,字符平滑边缘,干扰线,噪点,背景扭曲. 本来想做字符扭曲的,不知道怎的先生成文字再扭曲就报错了,先就这样吧,希望有高手能帮助修正一下. 需要说明的是之所以有几分像QQ的验证码感觉是因为这个Algerian字体,如果系统没有的话需要自行安装,百度搜字体名能下载到,丢系统Fonts文件夹就行. 效果图: package hh.com.util; impor

  • Django框架验证码用法实例分析

    本文实例讲述了Django框架验证码用法.分享给大家供大家参考,具体如下: 验证码 1.作用 在用户登录,注册以及一些敏感操作的时候,我们为了防止服务器被暴力请求,或爬虫爬取,我们可以使用验证码进行过滤,减轻服务器的压力. 验证码需要使用绘图 Pillow pip3 install Pillow 核心API Image 需要模式 尺寸 背景色 ImageDraw 绑定画布 模式 封装了绘制的API text point line arch ImageFont 手动指定字体 2.业务流程 绘制验证

  • PyQt5实现仿QQ贴边隐藏功能的实例代码

    此程序大致功能为:可变换颜色,贴边隐藏. 变换颜色思路 QPalette( [ˈpælət] 调色板)类相当于对话框或控件的调色板,它管理着控件或窗体的所有颜色信息,每个窗体或控件都包含一个QPalette对象,在显示时按照它的QPalette对象中对各部分各状态下的颜色的描述来进行绘制. 实现代码 def Painting(self): color = random.choice(["CCFFFF","CC6699","CC99FF",&quo

  • Android绘制验证码的实例代码

    在前面仿华为加载动画.仿网易音乐听歌识曲-麦克风动画中,我们通过绘图的基础知识完成了简单的绘制.在本例中,我们将绘制常见的验证码. 一.效果图 二.知识点与思路分析 通过上面的效果图观察,我们可以看到里面有绘制的随机线条,随机绘制的验证码. 绘制线条,直线或曲线 绘制文本,生成的验证码文本的绘制 绘制圆点. 三.代码编写 /** * Created by Iflytek_dsw on 2017/7/3. */ public class IdentifyCodeUtil { private sta

  • mpvue小程序仿qq左滑置顶删除组件

    背景: 前几天,公司的一个小程序项目开发的时候,遇到了一点点问题.设计师这狗币要让我在小程序上实现类似QQ左滑置顶删除的操作,心里mmp,我就是一个刚来公司三天的小小前端实习生而已,我想学习....当然刚刚来就被公司委以重任,也能看出本人技术过人,尤其是作为一个大二刚刚结束的学生来说.废话不多说,对于这个功能,第一反应就是百度,不百度不得了,一百度吓一跳.前辈们也来都做过."那我不是直接照搬就行,开心".开开心心的用mpvue上手之后,心里mmp,mpvue的坑这么多....还不如自己

  • jQuery实现仿QQ头像闪烁效果的文字闪动提示代码

    本文实例讲述了jQuery实现仿QQ头像闪烁效果的文字闪动提示代码.分享给大家供大家参考,具体如下: jQuery 闪动的文字提示,仿QQ头像闪烁闪动提示,可以用于错误提示或其他吸引用户注意力的场合. shake(ele,cls,times) ele : jQuery Object [object] 要闪动的元素 cls : Class Name [string] 闪动的类 times : Number [Number] 闪动几次 注意,必须调用jQuery1.4.2及以上版本,否则网页下角会提

  • js实现仿QQ秀换装效果的方法

    本文实例讲述了js实现仿QQ秀换装效果的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="www.w3.org/1999/xhtml"> <he

  • jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码

    本文实例讲述了jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码.分享给大家供大家参考,具体如下: 这是一款仿腾讯网QQ空间装扮预览图片的鼠标提示效果,感应鼠标显示图片的介绍信息,当你把鼠标移到图片上的时候,图片的背景会有所变化,并会显示该图片的对应文字内容,是QQ空间使用过的效果. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-f-qq-zone-pic-view-codes/ 具体代码如下: <!DOCTYPE html

  • JavaScript中this的用法实例分析

    本文实例分析了JavaScript中this的用法.分享给大家供大家参考,具体如下: 一."this"公理 this关键字永远都指向函数(方法)的所有者: function fn1(){ this }; fn1(); //this=>window oDiv.onclick=fn1; //this=>oDiv oDiv.onclick=function(){ this //this=>oDiv fn1(); //this=>window } <div onc

随机推荐