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 相关文章推荐
30 个很棒的PHP开源CMS内容管理系统小结
Oct 14 PHP
Fine Uploader文件上传组件应用介绍
Jan 06 PHP
php接口与接口引用的深入解析
Aug 09 PHP
php递归方法实现无限分类实例代码
Feb 28 PHP
PHP中字符与字节的区别及字符串与字节转换示例
Oct 15 PHP
PHP会话控制实例分析
Dec 24 PHP
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
Feb 24 PHP
PHP基于DOMDocument解析和生成xml的方法分析
Jul 17 PHP
php生成条形码的图片的实例详解
Sep 13 PHP
php实现生成带二维码图片并强制下载功能
Feb 24 PHP
PHP如何通过带尾指针的链表实现'队列'
Oct 22 PHP
Jsonp劫持学习
Apr 01 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采集类snoopy详细介绍(snoopy使用教程)
2014/06/19 PHP
PHP中if和or运行效率对比
2014/12/12 PHP
Laravel中扩展Memcached缓存驱动实现使用阿里云OCS缓存
2015/02/10 PHP
php微信公众号开发之微信企业付款给个人
2018/10/04 PHP
JObj预览一个JS的框架
2008/03/13 Javascript
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.2 0
2008/03/22 Javascript
cnblogs中在闪存中屏蔽某人的实现代码
2010/11/14 Javascript
JS左右无缝滚动(一般方法+面向对象方法)
2012/08/17 Javascript
JS生成随机字符串的多种方法
2014/06/10 Javascript
18个非常棒的jQuery代码片段
2015/11/02 Javascript
javascript中eval解析JSON字符串
2016/02/27 Javascript
js实现为a标签添加事件的方法(使用闭包循环)
2016/08/02 Javascript
JavaScript中的ajax功能的概念和示例详解
2016/10/17 Javascript
js实现倒计时关键代码
2017/05/05 Javascript
js中this对象用法分析
2018/01/05 Javascript
利用adb shell和node.js实现抖音自动抢红包功能(推荐)
2018/02/22 Javascript
微信小程序中添加客服按钮contact-button功能
2018/04/27 Javascript
JavaScript中发出HTTP请求最常用的方法
2018/07/12 Javascript
js实现金山打字通小游戏
2020/07/24 Javascript
在Python中使用dict和set方法的教程
2015/04/27 Python
Python正则替换字符串函数re.sub用法示例
2017/01/19 Python
Django框架模板语言实例小结【变量,标签,过滤器,继承,html转义】
2019/05/23 Python
django xadmin action兼容自定义model权限教程
2020/03/30 Python
纯CSS3制作的鼠标悬停时边框旋转
2017/01/03 HTML / CSS
html5 localStorage本地存储_动力节点Java学院整理
2017/07/06 HTML / CSS
党校自我鉴定范文
2013/10/02 职场文书
个人对照检查材料
2014/02/12 职场文书
现场施工员岗位职责
2014/03/10 职场文书
大一新生学期自我评价
2014/04/09 职场文书
大三学习计划书范文
2014/05/02 职场文书
微笑服务标语
2014/06/24 职场文书
单位作风建设剖析材料
2014/10/11 职场文书
2014年小学工作总结
2014/11/26 职场文书
2015年党日活动总结范文
2015/03/25 职场文书
golang interface判断为空nil的实现代码
2021/04/24 Golang
Redis 彻底禁用RDB持久化操作
2021/07/09 Redis