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写的基于Memcache的Queue实现代码
Nov 27 PHP
使用php验证复选框有效性的示例
Nov 13 PHP
php生成静态页面的简单示例
Apr 17 PHP
ThinkPHP CURD方法之field方法详解
Jun 18 PHP
PHP获取客户端真实IP地址的5种情况分析和实现代码
Jul 08 PHP
smarty内置函数section的用法
Jan 22 PHP
php面向对象中static静态属性和静态方法的调用
Feb 08 PHP
PHP数组操作――获取数组最后一个值的方法
Apr 14 PHP
php提高网站效率的技巧
Sep 29 PHP
如何利用预加载优化Laravel Model查询详解
Aug 11 PHP
PHP回调函数与匿名函数实例详解
Aug 16 PHP
php+mysql开发中的经验与常识小结
Mar 25 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
DOTA2【瓜皮时刻】Vol.91 RTZ山史最惨“矿难”
2021/03/05 DOTA
php中通过数组进行高效随机抽取指定条记录的算法
2013/09/09 PHP
ThinkPHP连接Oracle数据库
2016/04/22 PHP
PHP Filter过滤器全面解析
2016/08/09 PHP
php微信开发自定义菜单
2016/08/27 PHP
Netbeans 8.2与PHP相关的新特性介绍
2016/10/08 PHP
详解PHP归并排序的实现
2016/10/18 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
2016/12/05 PHP
HTTP状态代码以及定义(解释)
2007/02/02 Javascript
jquery 将disabled的元素置为enabled的三种方法
2009/07/25 Javascript
JavaScript中使用replace结合正则实现replaceAll的效果
2010/06/04 Javascript
javascript操作select元素实例分析
2015/03/27 Javascript
详解Angular中$cacheFactory缓存的使用
2016/08/19 Javascript
H5用户注册表单页 注册模态框!
2016/09/17 Javascript
jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
2017/04/11 jQuery
移动端web滚动分页的实现方法
2017/05/05 Javascript
分析JS中this引发的bug
2017/12/12 Javascript
解决IE11 vue +webpack 项目中数据更新后页面没有刷新的问题
2018/09/25 Javascript
详解vue页面首次加载缓慢原因及解决方案
2019/11/06 Javascript
Django中使用group_by的方法
2015/05/26 Python
python实现壁纸批量下载代码实例
2018/01/25 Python
Python反射的用法实例分析
2018/02/11 Python
Django读取Mysql数据并显示在前端的实例
2018/05/27 Python
tensorflow 固定部分参数训练,只训练部分参数的实例
2020/01/20 Python
Python网络爬虫信息提取mooc代码实例
2020/03/06 Python
使用pth文件添加Python环境变量方式
2020/05/26 Python
解决python 执行sql语句时所传参数含有单引号的问题
2020/06/06 Python
python开发前景如何
2020/06/11 Python
HTML5实现移动端点击翻牌功能
2020/10/23 HTML / CSS
2015年秘书个人工作总结
2015/04/25 职场文书
2015年高一班主任工作总结
2015/05/13 职场文书
2015法院个人工作总结范文
2015/05/25 职场文书
Python爬虫之爬取二手房信息
2021/04/27 Python
golang 在windows中设置环境变量的操作
2021/04/29 Golang
HTML5 新增内容和 API详解
2021/11/17 HTML / CSS
python 实现图片特效处理
2022/04/03 Python