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 相关文章推荐
获得Google PR值的PHP代码
Jan 28 PHP
表单复选框向PHP传输数据的代码
Nov 13 PHP
php 获取本机外网/公网IP的代码
May 09 PHP
php.ini修改php上传文件大小限制的方法详解
Jun 17 PHP
PHP引用符&amp;的用法详细解析
Aug 22 PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
Aug 19 PHP
php采用file_get_contents代替使用curl实例
Nov 07 PHP
php中return的用法实例分析
Feb 28 PHP
实例讲解如何在PHP的Yii框架中进行错误和异常处理
Mar 17 PHP
PHP设计模式之工厂方法设计模式实例分析
Apr 25 PHP
在Laravel5.6中使用Swoole的协程数据库查询
Jun 15 PHP
PHP让网站移动访问更加友好方法
Feb 14 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基本语法总结
2014/09/06 PHP
CI框架中redis缓存相关操作文件示例代码
2016/05/17 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
JavaScript在IE中“意外地调用了方法或属性访问”
2008/11/19 Javascript
优化 JavaScript 代码的方法小结
2009/07/16 Javascript
js动态改变select选择变更option的index值示例
2014/07/10 Javascript
javascript与jquery动态创建html元素示例
2016/07/25 Javascript
node.js express安装及示例网站搭建方法(分享)
2016/08/22 Javascript
jquery html5 视频播放控制代码
2016/11/06 Javascript
JS中判断null的方法分析
2016/11/21 Javascript
JS html事件冒泡和事件捕获操作示例
2019/05/01 Javascript
JS实现“全选”和&quot;全不选&quot;功能代码实例
2020/02/06 Javascript
js实现的订阅发布者模式简单示例
2020/03/14 Javascript
Python字符串和文件操作常用函数分析
2015/04/08 Python
python通过post提交数据的方法
2015/05/06 Python
Python2.x与Python3.x的区别
2016/01/14 Python
Python随机生成带特殊字符的密码
2016/03/02 Python
Windows下安装python MySQLdb遇到的问题及解决方法
2017/03/16 Python
Python3.6日志Logging模块简单用法示例
2018/06/14 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
2019/08/24 Python
python 读写文件包含多种编码格式的解决方式
2019/12/20 Python
python中翻译功能translate模块实现方法
2020/12/17 Python
详解css3中dispaly的Grid布局与Flex布局
2020/09/11 HTML / CSS
FitFlop美国官网:英国符合人体工学的鞋类品牌
2018/10/05 全球购物
最新教师自我评价分享
2013/11/12 职场文书
企业厂务公开实施方案
2014/03/26 职场文书
小学生运动会报道稿
2014/09/12 职场文书
党员专题组织生活会发言材料
2014/10/17 职场文书
申报优秀教师材料
2014/12/16 职场文书
员工年终考核评语
2014/12/31 职场文书
2015年六一儿童节演讲稿
2015/03/19 职场文书
反邪教学习心得体会
2016/01/15 职场文书
公司年会主持词范文!
2019/05/07 职场文书
适合毕业生创业的项目怎么找?
2019/08/08 职场文书
浅谈MySQL表空间回收的正确姿势
2021/10/05 MySQL
Python四款GUI图形界面库介绍
2022/06/05 Python