php5 图片验证码实现代码

   2015-11-17 0
核心提示:php5 图片验证码,需要的朋友可以参考下。
GD库的函数
1,imagecreatetruecolor -----创建一个真彩色的图像
imagecreatetruecolor(int x_size,int y_size) //x表示宽,y表示高
2,imagecolorallocate 为一幅图像分配颜色(调色板)
imagecolorallocate(resource image,int red,int green,int blue)//red,green,blue----三原色
3,imagestring 绘图函数
iamgestring(resource image,font,int x,int y,内容,颜色);
4,输出函数
php的header是定义头的动作,php5中支持3中类型:
1,Content-type:xxxx/yyyy
2,Location:xxxx:yyyy/zzzz
3,Status:nnn xxxxxx
xxxx/yyyy表示内容文件的类型
如:image/gif
image/jpeg
image/png
例子:header("Content-type:image/jpeg")
GD库中有对应的image类型
imagejpeg(),imagegif(),imagepang()
5,imageline画线函数
iamgeline(resource image,int x1,int y1,int x2,int y2,int color);
image ---图片
x1 ---启始坐标
y1
x2 ---终点坐标
y2
6,imagesetpixel画点函数
imagesetpixel(resource image,int x,int y,int color)
7,imagettftext带字体的写入函数
imagettftext(resource image,float size,float angle,int x,int y,int color,string fontfile,string text)
8,php验证码插入中文的方法
iconv("gb2312","utf-8","字符串"); //首先要将文字转换成utf-8格式
9,随机函数
1,rand([int min,int max]) //rand(1,4) 生成1-4的数
2, dechex(十进制数) //转换为十六进制
做验证码的步骤:
生成随机数 -- 创建图片 -- 随机数写成图片 --保存在session中
输入验证码例子
http://www.lexue001.com/skin/default/image/nopic.gif
复制代码 代码如下:

<?php
/*
* 生成图片验证码
* and open the template in the editor.
*/
session_start();
for($i=0;$i<4;$i++){
$rand.=dechex(rand(1,15)); //生成4位数包含十六进制的随机数
}
$_SESSION[check_gd]=$rand;
$img=imagecreatetruecolor(100,30); //创建图片
$bg=imagecolorallocate($img,0,0,0); //第一次生成的是背景颜色
$fc=imagecolorallocate($img,255,255,255); //生成的字体颜色
//给图片画线
for($i=0;$i<3;$i++){
$te=imagecolorallocate($img,rand(0,255),rand(0,255),rand(0,255));
imageline($img,rand(0,15),0,100,30,$te);
}
//给图片画点
for($i=0;$i<200;$i++){
$te=imagecolorallocate($img,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($img,rand()%100,rand()%30,$te);
}
//首先要将文字转换成utf-8格式
//$str=iconv("gb2312","utf-8","呵呵呵");
//加入中文的验证
//smkai.ttf是一个字体文件,为了在别人的电脑中也能起到字体作用,把文件放到项目的根目录,可以下载,还有本机C:\WINDOWS\Fonts中有
imagettftext($img,11,10,20,20,$fc,"simkai.ttf","你好你好");
//把字符串写在图片中
//imagestring($img,rand(1,6),rand(3,70),rand(3,16),$rand,$fc);
//输出图片
header("Content-type:image/jpeg");
imagejpeg($img);
?>

login.php
复制代码 代码如下:

<?php
/*
*
*
*/
session_start();
if($_POST[sub]){
//判断验证码是否相同
if($_POST[gd_pic]==$_SESSION[check_gd]){
echo "验证成功!";
}else{
echo "验证码错误";
}
}
?>
<form action="login.php" method="POST">
用户名:<input type="text" name="user"/><br>
密码:<input type="password" name="pwd"/><br>
验证码:<imput type="text" name="gd_pic"/><img src="http://www.lexue001.com/skin/default/image/nopic.gif"><br>
<imput type="submit" name="sub" value="submit"/>
</form>
 
标签: php5 图片验证码
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • PHP5.6版本在Windows上安装redis扩展 php redis 扩展
    PHP5.6版本在Windows上安装redis扩展 php redis
    PHP使用redis扩展 一.php安装redis扩展 1.使用phpinfo()函数查看PHP的版本信息,这会决定扩展文件版本   2.根据PHP版本号,编译器版本号和CPU架构,选择php_redis-2.2.5-5.6-ts-vc11-x64.zip和php_igbinary-1.2.1-5.5-ts-vc11-x64.zip下载地址:http://w
    02-09
  • thinkphp5 IIS7.5 隐藏index.php的方法
    ?xml version="1.0" encoding="UTF-8"? configurationsystem.webServerrewriterulesrule name="WPurls" enabled="true" stopProcessing="true"match url=".*" /conditions logicalGrouping="MatchAll"
    02-09
  • docker制作cenos+php56+nginx镜像
    docker制作cenos+php56+nginx镜像
    首先你环境要安装好docker 1 获取centos镜像。docker search centos 选取第一个官方镜像。   docker pull  docker.io/centos    新建镜像挂载目录,放入php56 nginx 以及php的redis扩展源码。    2 启动镜像。 docker run -v /root/php56:/root
    02-09
  • 分页组件 PHP5+MSSQL
    ?class pagerecordset{private $cn;private $rs;private $totalpage = 0;private $totalrecord = 0;private $bpos = 1;private $epos = 1;private $row = null;private $firstpage = 1;private $prevpage = 1;private $nextpage = 1;private $lastpage = 1;pu
    02-09
  • win7(64位)php5.5-Apache2.4-环境安装
    win7(64位)php5.5-Apache2.4-环境安装
    一、安装配置Apache2.4.7(httpd-2.4.7-win64-VC11.zip )   1、解压下载的安装包:httpd-2.4.12-x64-vc11-r2.zip将其放到自己的安装目录(我的目录D:\phpEnv\Apache24)2、然后对http.conf(D:\phpEnv\Apache24\conf\http.conf)配置文件进行修改-使用记事本打开
    02-09
  • ubuntu 14.04升级PHP5.5.9 到5.6
    ubuntu 14.04升级PHP5.5.9 到5.6
     升级的步骤:参考https://www.digitalocean.com/community/questions/how-to-upgrade-from-php-v-5-5-9-to-v-5-6sudo add-apt-repository ppa:ondrej/phpsudo apt-get updatesudo apt-get install php5.6 php5.6-mbstring php5.6-mcrypt php5.6-mysql php5.
    02-09
  • 【小程序+thinkphp5】 用户登陆,返回第三方session3rd
    【小程序+thinkphp5】 用户登陆,返回第三方ses
    服务器环境: centos7   php7.0准备工作: 注册小程序,并获取 appid 、appsecret下载微信解密算法sdk : https://mp.weixin.qq.com/debug/wxadoc/dev/api/signature.htmlhttps 的域名。需要在小程序后台服务器域名那配置   代码实现 一 、 thinkphp5 
    02-09
  • 码云推荐 | 基于 ThinkPHP5 的通用后台 lyadmin_v2
    码云推荐 | 基于 ThinkPHP5 的通用后台 lyadmin
    lyadmin_v2 项目介绍 lyamdin是一套轻量级通用后台,采用Bootstrap3制作,自带权限管理,模块化开发。lyadmin_v2是基于ThinkPHP5全新开发的新版本。真正原创的Builder页面生生成器完美支持2.0并且支持多达38中表单类型的支持,包括但不限于文本、富文本、图片
  • [译]将PHP扩展从PHP5升级到NG(PHP7)
    许多经常使用的API函数已经更改,例如HashTable API; 这个页面致力于记录尽可能多的实际影响扩展和核心代码的更改。 强烈建议在阅读本指南之前阅读phpng-int中有关PHPNG实现的一般信息。这不是一个涵盖所有可能情况的完整指南。 这是一个在大多数情况下有用的
    12-23 PHP7
  • 针对PHP5.5.32版本的错误机制总结
    针对PHP5.5.32版本的错误机制总结
    PHP的错误机制也是非常复杂的,做了几年php,也没有仔细总结过,现在就补上这一课。特别说明:文章的PHP版本使用5.5.32PHP的错误级别 首先需要了解php有哪些错误。截至到php5.5,一共有 16个错误级别 注意:尝试下面的代码的时候请确保打开error_log:error_re
    12-01 PHP
点击排行