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 session常见问题集锦及解决办法总结
Mar 18 PHP
PHP对象转换为数组函数(递归方法)
Feb 04 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
May 15 PHP
PHP中常用的输出函数总结
Sep 22 PHP
PHP获取一段文本显示点阵宽度和高度的方法
Mar 12 PHP
PHP中addslashes与mysql_escape_string的区别分析
Apr 25 PHP
简单解析PHP程序的运行流程
Jun 23 PHP
php进行ip地址掩码运算处理的方法
Jul 11 PHP
PHP生成word文档的三种实现方式
Nov 14 PHP
PHP+AjaxForm异步带进度条上传文件实例代码
Aug 14 PHP
基于php数组中的索引数组和关联数组详解
Mar 12 PHP
php实现有序数组旋转后寻找最小值方法
Sep 27 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中实现使用Guzzle执行POST和GET请求
2019/10/15 PHP
脚本收藏iframe
2006/07/21 Javascript
javascript 单选框,多选框美化代码
2008/08/01 Javascript
js变量以及其作用域详解
2020/07/18 Javascript
qTip2 精致的基于jQuery提示信息插件
2012/02/17 Javascript
使用js检测浏览器是否支持html5中的video标签的方法
2014/03/12 Javascript
纯HTML5制作围住神经猫游戏-附源码下载
2015/08/23 Javascript
Vue.js学习示例分享
2017/02/05 Javascript
详解Angular2中Input和Output用法及示例
2017/05/21 Javascript
使用html+js+css 实现页面轮播图效果(实例讲解)
2017/09/21 Javascript
AngularJS监听ng-repeat渲染完成的两种方法
2018/01/16 Javascript
node+koa2+mysql+bootstrap搭建一个前端论坛
2018/05/06 Javascript
详解在React中跨组件分发状态的三种方法
2018/08/09 Javascript
小程序点击图片实现自动播放视频
2020/05/29 Javascript
layui加载表格,绑定新增,编辑删除,查看按钮事件的例子
2019/09/06 Javascript
一起深入理解js中的事件对象
2021/02/06 Javascript
[01:11:46]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第一场 2月23日
2021/03/11 DOTA
Python3.x中自定义比较函数
2015/04/24 Python
Windows下python2.7.8安装图文教程
2016/05/26 Python
解决python2.7用pip安装包时出现错误的问题
2017/01/23 Python
利用python解决mysql视图导入导出依赖的问题
2017/12/17 Python
解决pycharm每次新建项目都要重新安装一些第三方库的问题
2019/01/17 Python
利用CSS3实现炫酷的飞机起飞动画
2016/09/17 HTML / CSS
html5小技巧之通过document.head获取head元素
2014/06/04 HTML / CSS
Canvas多边形绘制的实现方法
2019/08/05 HTML / CSS
Wolford法国官网:奥地利奢侈内衣品牌
2020/08/11 全球购物
车间班组长岗位职责
2013/11/13 职场文书
保卫科工作岗位职责
2014/03/01 职场文书
学生评语大全
2014/04/18 职场文书
公开承诺书格式
2014/05/21 职场文书
政风行风评议工作总结
2014/10/21 职场文书
食堂采购员岗位职责
2015/04/03 职场文书
婚宴领导致辞
2015/07/28 职场文书
Python数据清洗工具之Numpy的基本操作
2021/04/22 Python
MySQL 分区表中分区键为什么必须是主键的一部分
2022/03/17 MySQL
详解Python内置模块Collections
2022/03/22 Python