确认码生成文件checkNum_session.php
确认码调用文件sessionValidate.php
<?
Header ( " Content-type:image/png " );
// 定义header,声明图片文件,最好是png,无版权之扰;
//生成新的四位整数验证码
session_start (); // 开启session;
$authnum_session = '' ;
$str = ' abcdefghijkmnpqrstuvwxyz1234567890 ' ;
// 定义用来显示在图片上的数字和字母;
$l = strlen ( $str ); // 得到字串的长度;
//循环随机抽取四位前面定义的字母和数字;
for ( $i = 1 ; $i <= 4 ; $i ++ )
{
$num = rand ( 0 , $l - 1 );
// 每次随机抽取一位数字;从第一个字到该字串最大长度,
//减1是因为截取字符是从0开始起算;这样34字符任意都有可能排在其中;
$authnum_session .= $str [ $num ];
// 将通过数字得来的字符连起来一共是四位;
}
session_register ( " authnum_session " );
// 用session来做验证也不错;注册session,名称为authnum_session,
//其它页面只要包含了该图片
//即可以通过$_SESSION["authnum_session"]来调用
//生成验证码图片,
srand (( double ) microtime () * 1000000 );
$im = imagecreate( 50 , 20 ); // 图片宽与高;
//主要用到黑白灰三种色;
$black = ImageColorAllocate( $im , 0 , 0 , 0 );
$white = ImageColorAllocate( $im , 255 , 255 , 255 );
$gray = ImageColorAllocate( $im , 200 , 200 , 200 );
// 将四位整数验证码绘入图片
imagefill( $im , 68 , 30 , $gray );
// 如不用干扰线,注释就行了;
$li = ImageColorAllocate( $im , 220 , 220 , 220 );
for ( $i = 0 ; $i < 3 ; $i ++ )
{ // 加入3条干扰线;也可以不要;视情况而定,因为可能影响用户输入;
imageline( $im , rand ( 0 , 30 ) , rand ( 0 , 21 ) , rand ( 20 , 40 ) , rand ( 0 , 21 ) , $li );
}
// 字符在图片的位置;
imagestring( $im , 5 , 8 , 2 , $authnum_session , $white );
for ( $i = 0 ; $i < 90 ; $i ++ )
{ // 加入干扰象素
imagesetpixel( $im , rand () % 70 , rand () % 30 , $gray );
}
ImagePNG( $im );
ImageDestroy( $im );
?>
Header ( " Content-type:image/png " );
// 定义header,声明图片文件,最好是png,无版权之扰;
//生成新的四位整数验证码
session_start (); // 开启session;
$authnum_session = '' ;
$str = ' abcdefghijkmnpqrstuvwxyz1234567890 ' ;
// 定义用来显示在图片上的数字和字母;
$l = strlen ( $str ); // 得到字串的长度;
//循环随机抽取四位前面定义的字母和数字;
for ( $i = 1 ; $i <= 4 ; $i ++ )
{
$num = rand ( 0 , $l - 1 );
// 每次随机抽取一位数字;从第一个字到该字串最大长度,
//减1是因为截取字符是从0开始起算;这样34字符任意都有可能排在其中;
$authnum_session .= $str [ $num ];
// 将通过数字得来的字符连起来一共是四位;
}
session_register ( " authnum_session " );
// 用session来做验证也不错;注册session,名称为authnum_session,
//其它页面只要包含了该图片
//即可以通过$_SESSION["authnum_session"]来调用
//生成验证码图片,
srand (( double ) microtime () * 1000000 );
$im = imagecreate( 50 , 20 ); // 图片宽与高;
//主要用到黑白灰三种色;
$black = ImageColorAllocate( $im , 0 , 0 , 0 );
$white = ImageColorAllocate( $im , 255 , 255 , 255 );
$gray = ImageColorAllocate( $im , 200 , 200 , 200 );
// 将四位整数验证码绘入图片
imagefill( $im , 68 , 30 , $gray );
// 如不用干扰线,注释就行了;
$li = ImageColorAllocate( $im , 220 , 220 , 220 );
for ( $i = 0 ; $i < 3 ; $i ++ )
{ // 加入3条干扰线;也可以不要;视情况而定,因为可能影响用户输入;
imageline( $im , rand ( 0 , 30 ) , rand ( 0 , 21 ) , rand ( 20 , 40 ) , rand ( 0 , 21 ) , $li );
}
// 字符在图片的位置;
imagestring( $im , 5 , 8 , 2 , $authnum_session , $white );
for ( $i = 0 ; $i < 90 ; $i ++ )
{ // 加入干扰象素
imagesetpixel( $im , rand () % 70 , rand () % 30 , $gray );
}
ImagePNG( $im );
ImageDestroy( $im );
?>
确认码调用文件sessionValidate.php
<?
php
session_start ();
// 在页首先要开启session,
//error_reporting(2047);
session_destroy ();
// 将session去掉,以每次都能取新的session值;
//用seesion 效果不错,也很方便
?>
< html >
< head >
< title > session 图片验证实例 </ title >
</ head >
< body >
此例为session验证实例
< form action = "" method = " post " >
验证码: < input type = " text " name = " validate " value = "" size = 10 > < img src = " checkNum_session.php " >< br >
< input type = " submit " >
</ form >
<? php
// 打印上一个session;
echo " 上一个session:<b> " . $_SESSION [ " authnum_session " ] . " </b><br> " ;
$validate = "" ;
if ( isset ( $_POST [ " validate " ])){
$validate = $_POST [ " validate " ];
echo " 您刚才输入的是: " . $_POST [ " validate " ] . " <br>状态: " ;
if ( $validate != $_SESSION [ " authnum_session " ]){
// 判断session值与用户输入的验证码是否一致;
echo " <font color=red>输入有误</font> " ;
} else {
echo " <font color=green>通过验证</font> " ;
}
}
/*
//打印全部session;
PrintArr($_SESSION);
function PrintArr($aArray){
echo '<xmp>';
print_r($aArray);
echo '</xmp>';
}
*/
?>
session_start ();
// 在页首先要开启session,
//error_reporting(2047);
session_destroy ();
// 将session去掉,以每次都能取新的session值;
//用seesion 效果不错,也很方便
?>
< html >
< head >
< title > session 图片验证实例 </ title >
</ head >
< body >
此例为session验证实例
< form action = "" method = " post " >
验证码: < input type = " text " name = " validate " value = "" size = 10 > < img src = " checkNum_session.php " >< br >
< input type = " submit " >
</ form >
<? php
// 打印上一个session;
echo " 上一个session:<b> " . $_SESSION [ " authnum_session " ] . " </b><br> " ;
$validate = "" ;
if ( isset ( $_POST [ " validate " ])){
$validate = $_POST [ " validate " ];
echo " 您刚才输入的是: " . $_POST [ " validate " ] . " <br>状态: " ;
if ( $validate != $_SESSION [ " authnum_session " ]){
// 判断session值与用户输入的验证码是否一致;
echo " <font color=red>输入有误</font> " ;
} else {
echo " <font color=green>通过验证</font> " ;
}
}
/*
//打印全部session;
PrintArr($_SESSION);
function PrintArr($aArray){
echo '<xmp>';
print_r($aArray);
echo '</xmp>';
}
*/
?>