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 相关文章推荐
apache+mysql+php+ssl服务器之完全安装攻略
Sep 05 PHP
再次研究下cache_lite
Feb 14 PHP
PHP学习笔记 (1) 环境配置与代码调试
Jun 19 PHP
二招解决php乱码问题
Mar 25 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
May 15 PHP
PHP中判断变量为空的几种方法小结
Nov 12 PHP
从零开始学YII2框架(六)高级应用程序模板
Aug 20 PHP
PHP四种基本排序算法示例
Apr 09 PHP
php session的锁和并发
Jan 22 PHP
php实现生成验证码实例分享
Apr 10 PHP
PHP区块查询实现方法分析
May 12 PHP
laravel config文件配置全局变量的例子
Oct 13 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
杏林同学录(六)
2006/10/09 PHP
15种PHP Encoder的比较
2007/03/06 PHP
用php实现让页面只能被百度gogole蜘蛛访问的方法
2009/12/29 PHP
解析VS2010利用VS.PHP插件调试PHP的方法
2013/07/19 PHP
PHP获取windows登录用户名的方法
2014/06/24 PHP
基于php实现的验证码小程序
2016/12/13 PHP
Jquery 表格合并的问题分享
2011/09/17 Javascript
jQuery .attr()和.removeAttr()方法操作元素属性示例
2013/07/16 Javascript
js打开windows上的可执行文件示例
2014/05/27 Javascript
java、javascript实现附件下载示例
2014/08/14 Javascript
jquery中post方法用法实例
2014/10/21 Javascript
JS实现简单的键盘打字的效果
2015/04/24 Javascript
ES6正则的扩展实例详解
2017/04/25 Javascript
微信小程序开发之toast提示插件使用示例
2017/06/08 Javascript
vue router的基本使用和配置教程
2018/11/05 Javascript
jQuery实现的网站banner图片无缝轮播效果完整实例
2019/01/28 jQuery
Vue+axios+WebApi+NPOI导出Excel文件实例方法
2019/06/05 Javascript
在项目vue中使用echarts的操作步骤
2020/09/07 Javascript
vue3 watch和watchEffect的使用以及有哪些区别
2021/01/26 Vue.js
[01:12]DOTA2 2015年秋季互动指南
2015/11/10 DOTA
python实现壁纸批量下载代码实例
2018/01/25 Python
python实现黑客字幕雨效果
2018/06/21 Python
python实现的生成word文档功能示例
2019/08/23 Python
Python3实现二叉树的最大深度
2019/09/30 Python
Python datetime 如何处理时区信息
2020/09/02 Python
python二维图制作的实例代码
2020/12/03 Python
HTML5微信播放全屏问题的解决方法
2017/03/09 HTML / CSS
研发工程师的岗位职责
2013/11/18 职场文书
大学毕业生个人自荐信范文
2014/01/08 职场文书
师范教师毕业鉴定
2014/01/13 职场文书
给分销商的致歉信
2014/01/14 职场文书
2014年社区庆元旦活动方案
2014/03/08 职场文书
建设单位项目负责人任命书
2014/06/06 职场文书
高二学年自我鉴定范文(2篇)
2014/09/26 职场文书
实例讲解Python中sys.argv[]的用法
2021/06/03 Python
python 远程执行命令的详细代码
2022/02/15 Python