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与MySQL开发中页面乱码的产生与解决
Mar 27 PHP
通过php快速统计某个数据库中每张表的数据量
Sep 04 PHP
php中删除字符串中最先出现某个字符的实现代码
Feb 03 PHP
php中使用$_REQUEST需要注意的一个问题
May 02 PHP
PHP函数实现分页含文本分页和数字分页
Oct 23 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
Dec 16 PHP
php 使用array函数实现分页
Feb 13 PHP
php数组键名技巧小结
Feb 17 PHP
PHP实现简单数字分页效果
Jul 26 PHP
浅析PHP关键词替换的类(避免重复替换,保留与还原原始链接)
Sep 22 PHP
Laravel执行migrate命令提示:No such file or directory的解决方法
Mar 16 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
Feb 08 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
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
2010/12/29 PHP
解析PHP汉字转换拼音的类
2013/06/18 PHP
PHP PDOStatement:bindParam插入数据错误问题分析
2013/11/13 PHP
ThinkPHP之N方法实例详解
2014/06/20 PHP
php编写的一个E-mail验证类
2015/03/25 PHP
Laravel 5框架学习之数据库迁移(Migrations)
2015/04/08 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
use jscript Create a SQL Server database
2007/06/16 Javascript
基于jquery的多功能软键盘插件
2012/07/25 Javascript
使用JavaScript构建JSON格式字符串实现步骤
2013/03/22 Javascript
JavaScript中判断整字类型最简洁的实现方法
2014/11/08 Javascript
js的回调函数详解
2015/01/05 Javascript
json实现前后台的相互传值详解
2015/01/05 Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
2015/08/27 Javascript
JS截取字符串实例详解
2015/11/24 Javascript
基于angular实现三级联动的生日插件
2017/05/12 Javascript
JavaScript判断输入是否为数字类型的方法总结
2017/09/28 Javascript
在angular 6中使用 less 的实例代码
2018/05/13 Javascript
Vue Router的懒加载路径的解决方法
2018/06/21 Javascript
vue基于element的区间选择组件
2018/09/07 Javascript
JS实现指定区域的全屏显示功能示例
2019/04/25 Javascript
vue下使用nginx刷新页面404的问题解决
2019/08/02 Javascript
element form 校验数组每一项实例代码
2019/10/10 Javascript
python好玩的项目—色情图片识别代码分享
2017/11/07 Python
Django开发的简易留言板案例详解
2018/12/04 Python
对python指数、幂数拟合curve_fit详解
2018/12/29 Python
Python实现的删除重复文件或图片功能示例【去重】
2019/04/23 Python
Python循环结构的应用场景详解
2019/07/11 Python
tensorflow之变量初始化(tf.Variable)使用详解
2020/02/06 Python
对python pandas中 inplace 参数的理解
2020/06/27 Python
python map比for循环快在哪
2020/09/21 Python
Kathmandu澳洲户外商店:新西兰户外运动品牌
2017/11/12 全球购物
印尼极简主义和实惠的在线家具店:Fabelio
2019/03/27 全球购物
保安的辞职报告怎么写
2014/01/20 职场文书
领导干部作风建设工作总结
2014/10/23 职场文书
幼儿园教师教学反思
2016/03/02 职场文书