PHP 验证码的实现代码


Posted in PHP onJuly 17, 2011

checkcode.php 生成验证码图片,还有变量 $_SESSION[check_pic]。

<? 
session_start(); 
for($i=0; $i<4; $i++){ 
$rand.= dechex(rand(1,15)); 
} 
$_SESSION[check_pic]=$rand; 
//echo $_SESSION[check_pic]; 
// 设置图片大小 
$im = imagecreatetruecolor(100,30); 
// 设置颜色 
$bg=imagecolorallocate($im,0,0,0); 
$te=imagecolorallocate($im,255,255,255); 
// 把字符串写在图像左上角 
imagestring($im,rand(5,6),rand(25,30),5,$rand,$te); 
// 输出图像 
header("Content-type:image/jpeg"); 
imagejpeg($im); 
?>

form.php
通过 <img src="checkcode.php"> 调用生成的验证码图片
<div class="bottomAds"> 
<fieldset class="bottomAds_quote"><legend>留言</legend> 
<div class="ads"> 
<form action="../utity/post.php" method="post" onsubmit="return chkinput(this)"> 
<input name="name" type="text" /> 您的名字 
<input name="email" type="text" /> 您的邮件 
<input name="website" type="text" /> 您的网站 
<textarea name="content" style="width:340; height:150;"> 
</textarea><br /> 
<img src="checkcode.php"><input type="text" name="check"><br /> 
<input type="submit" value="提交" /> 
</form> 
</div> 
<br clear="both" /> 
</fieldset>

imagestring($im,rand(5,6),rand(25,30),5,$rand,$te); 使用了 int imagestring(int im, int font, int x, int y, string s, int col); 函数,这个函数用于绘横式字符串。
这个函数在图片上绘出水平的横式字符串。参数 font 为字形,设为 1 到 5 表示使用默认字形。参数 x、y 为字符串起点坐标。字符串的内容放在参数 s 上。参数 col 表示字符串的颜色。
post.php
比较 $_POST[check] 与 $_SESSION[check_pic],若相等则执行数据库插入操作。不相等就返回上一页。
<?php 
session_start(); 
if(isset($_POST[check])) 
{ 
if($_POST[check] == $_SESSION[check_pic]) 
{ 
// echo "验证码正确".$_SESSION[check_pic]; 
require("dbinfo.php"); 
$name = $_POST['name']; 
$email = $_POST['email']; 
$website = $_POST['website']; 
$content = $_POST['content']; 
$date = date("Y-m-d h:m:s"); 
// 连接到 MySQL 服务器 
$connection = mysql_connect ($host, $username, $password); 
if (!$connection) 
{ 
die('Not connected : ' . mysql_error()); 
} 
// 设置活动的 MySQL 数据库 
$db_selected = mysql_select_db($database, $connection); 
if (!$db_selected) 
{ 
die ('Can\'t use db : ' . mysql_error()); 
} 
// 向数据库插入数据 
$query = "insert into table (nowamagic_name, nowamagic_email, nowamagic_website, nowamagic_content, nowamagic_date) values ('$name','$email','$website','$content','$date')"; 
$result = mysql_query($query); 
if($result) 
{ 
echo "<script>alert('提交成功'); history.go(-1);</script>"; 
} 
if (!$result) 
{ 
die('Invalid query: ' . mysql_error()); 
} 
} 
else 
{ 
echo "<script>alert('验证码错误'); history.go(-1);</script>"; 
} 
} 
?>
PHP 相关文章推荐
php自动获取目录下的模板的代码
Aug 08 PHP
php 错误处理经验分享
Oct 11 PHP
ThinkPHP3.0略缩图不能保存到子目录的解决方法
Sep 30 PHP
PHP集成百度Ueditor 1.4.3
Nov 23 PHP
php header函数的常用http头设置
Jun 25 PHP
Zend Studio使用技巧两则
Apr 01 PHP
thinkphp框架实现数据添加和显示功能
Jun 29 PHP
thinkPHP5 ACL用户权限模块用法详解
May 10 PHP
PHP中in_array的隐式转换的解决方法
Mar 06 PHP
ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
May 12 PHP
laravel http 自定义公共验证和响应的方法
Sep 29 PHP
PHP图像处理 imagestring添加图片水印与文字水印操作示例
Feb 06 PHP
PHP中用hash实现的数组
Jul 17 #PHP
PHP中文分词的简单实现代码分享
Jul 17 #PHP
PHP 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
Jul 17 #PHP
从手册去理解分析PHP session机制
Jul 17 #PHP
php数组的一些常见操作汇总
Jul 17 #PHP
PHP在特殊字符前加斜杠的实现代码
Jul 17 #PHP
PHP的explode和implode的使用说明
Jul 17 #PHP
You might like
PHP中register_globals参数为OFF和ON的区别(register_globals 使用详解)
2012/02/05 PHP
CentOS 6.2使用yum安装LAMP以及phpMyadmin详解
2013/06/17 PHP
判断浏览器的javascript版本的代码
2010/09/03 Javascript
jQuery获取CSS样式中的颜色值的问题,不同浏览器格式不同的解决办法
2013/05/13 Javascript
jQuery实现右侧显示可向左滑动展示的深色QQ客服效果代码
2015/10/23 Javascript
jQuery实现滑动页面固定顶部显示(可根据显示位置消失与替换)
2015/10/28 Javascript
js实现仿微博滚动显示信息的效果
2015/12/21 Javascript
学习使用jquery iScroll.js移动端滚动条插件
2020/03/24 Javascript
JavaScript中的继承之类继承
2016/05/01 Javascript
基于jQuery实现动态搜索显示功能
2016/05/05 Javascript
jquery 无限极下拉菜单的简单实例(精简浓缩版)
2016/05/31 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
2016/10/28 Javascript
js document.getElementsByClassName的使用介绍与自定义函数
2016/11/25 Javascript
Angular 4依赖注入学习教程之FactoryProvider配置依赖对象(五)
2017/06/04 Javascript
Bootstrap 模态框(Modal)带参数传值实例
2017/08/20 Javascript
node.js使用fs读取文件出错的解决方案
2019/10/23 Javascript
[05:53]完美世界携手游戏风云打造 卡尔工作室观战系统篇
2013/04/22 DOTA
[02:19]DOTA2女子战队FOX视频专访:希望更多美眉一起加入
2013/10/15 DOTA
[01:54]胎教DOTA2 准妈妈玩家现身中国区预选赛
2016/06/26 DOTA
在Python中处理时间之clock()方法的使用
2015/05/22 Python
Python中的字符串操作和编码Unicode详解
2017/01/18 Python
python 设置文件编码格式的实现方法
2017/12/21 Python
Python实现的从右到左字符串替换方法示例
2018/07/06 Python
Python模块的加载讲解
2019/01/15 Python
python将print输出的信息保留到日志文件中
2019/09/27 Python
Python 安装 virturalenv 虚拟环境的教程详解
2020/02/21 Python
基于Python实现全自动下载抖音视频
2020/11/06 Python
Python3使用Selenium获取session和token方法详解
2021/02/16 Python
Born鞋子官网:Born Shoes
2017/04/06 全球购物
this关键字的作用
2016/01/30 面试题
试用期转正鉴定评语
2014/01/27 职场文书
镇班子对照检查材料思想汇报
2014/09/24 职场文书
2015员工年度考核评语
2015/03/25 职场文书
健康证明
2015/06/19 职场文书
2015初一年级组工作总结
2015/07/24 职场文书
汽车销售员工作总结
2015/08/12 职场文书