PHP 验证码的实现代码

 更新时间:2011年07月17日 13:02:35   作者:  
PHP 验证码的实现代码,需要的朋友可以参考下。
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实现简单汉字验证码

    大家知道简单数字或者字母验证码很容易被破解,但是算式验证码或者中文汉字验证码不容易被破解,所以建议大家在使用验证码的时候,尽量用算式验证码或者中文汉字验证码。
    2015-07-07
  • PHP处理JSON字符串key缺少双引号的解决方法

    PHP处理JSON字符串key缺少双引号的解决方法

    这篇文章主要介绍了PHP处理JSON字符串key缺少双引号的解决方法,是非常常见的一类错误处理情况,需要的朋友可以参考下
    2014-09-09
  • php基于base64解码图片与加密图片还原实例

    php基于base64解码图片与加密图片还原实例

    这篇文章主要介绍了php基于base64解码图片与加密图片还原的方法,以实例形式讲述了base64_decode函数的用法,需要的朋友可以参考下
    2014-11-11
  • PHP操作MongoDB实现增删改查功能【附php7操作MongoDB方法】

    PHP操作MongoDB实现增删改查功能【附php7操作MongoDB方法】

    这篇文章主要介绍了PHP操作MongoDB实现增删改查功能,结合实例形式总结分析了php操作MongoDB的常用技巧,并附带php7操作MongoDB方法,具有一定参考借鉴价值,需要的朋友可以参考下
    2018-04-04
  • PHP危险函数禁用深入详解

    PHP危险函数禁用深入详解

    这篇文章主要介绍了PHP危险函数禁用深入详解,列举了一些比较敏感的函数,有感兴趣的同学可以学习下
    2021-03-03
  • 使用纯php代码实现页面伪静态的方法

    使用纯php代码实现页面伪静态的方法

    这篇文章主要介绍了使用纯php代码实现页面伪静态的方法,涉及php服务器预定义变量及正则匹配的相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • PHP堆栈调试操作简单示例

    PHP堆栈调试操作简单示例

    这篇文章主要介绍了PHP堆栈调试操作,结合简单实例形式分析了php使用debug_backtrace()函数进行堆栈调试操作方法,需要的朋友可以参考下
    2018-06-06
  • 如何使用PHP计算上一个月的今天

    如何使用PHP计算上一个月的今天

    本篇文章是对用PHP计算上一个月的今天的实例进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • php获取数组元素中头一个数组元素值的实现方法

    php获取数组元素中头一个数组元素值的实现方法

    这篇文章主要介绍了php获取数组元素中头一个数组元素值的实现方法,较为详细的分析了数组操作中reset、next、current等函数的用法,非常具有实用价值,需要的朋友可以参考下
    2014-12-12
  • PHP+shell实现多线程的方法

    PHP+shell实现多线程的方法

    这篇文章主要介绍了PHP+shell实现多线程的方法,实例分析了php实现多线程的相关技巧,需要的朋友可以参考下
    2015-07-07

最新评论