PHP 验证码的实现代码

checkcode.PHP 生成验证码图片,还有变量 $_SESSION[check_pic]。
<div class="codetitle"><a style="CURSOR: pointer" data="30410" class="copybut" id="copybut30410" onclick="doCopy('code30410')"> 代码如下:

<div class="codebody" id="code30410">
<?
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);
$te=imagecolorallocate($im,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="codetitle"><a style="CURSOR: pointer" data="22124" class="copybut" id="copybut22124" onclick="doCopy('code22124')"> 代码如下:
<div class="codebody" id="code22124">
<div class="bottomAds">
<fieldset class="bottomAds_quote">留言
<div class="ads">
<form action="../utity/post.PHP" method="post" onsubmit="return chkinput(this)">
您的名字
您的邮件
您的网站
<textarea name="content" style="width:340; height:150;">


<img src="checkcode.PHP"><input type="text" name="check">








imagestring($im,$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],若相等则执行数据库插入操作。不相等就返回上一页
<div class="codetitle"><a style="CURSOR: pointer" data="98" class="copybut" id="copybut98" onclick="doCopy('code98')"> 代码如下:<div class="codebody" id="code98">
<?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 "";
}
if (!$result)
{
die('Invalid query: ' . MysqL_error());
}
}
else
{
echo "";
}
}
?>

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...