ホームページ >バックエンド開発 >PHPチュートリアル >session保存验证码的有关问题
session保存验证码的问题
我在code页面生成验证码的原字符 保存到session中 从另一个页面调用 怎么会是空呢? 奇怪
code 的源程序
//checkNum.php
session_start();
function random($len)
{
$srcstr="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
mt_srand();//配置乱数种子
$strs="";
for($i=0;$i $strs.=$srcstr[mt_rand(0,35)];
}
/*
2 名 称:strtoupper
3 功 能:字串全转为大写\r
4 传回值:字串
5 语 法:strtoupper(string str);
6 说 明:本函式将字串 str 全部变大写字串。\r
7 范 例:
8 strtoupper("ab2cd4efg"); 结果为AB2CD4EFG
9 strtoupper("ab1cde4fg"); 结果为Ab1CDE4fg
10
11 */
return strtoupper($strs);
}
$str=random(4); //随机生成的字符串
$width = 50; //验证码图片的宽度
$height = 25; //验证码图片的高度
/*
Content-Type: xxxx/yyyy
Location: xxxx:yyyy/zzzz
Status: nnn xxxxxx
*/
@header("Content-Type:image/png");
$_SESSION["code"] = $str;
//echo $str;
$im=imagecreate($width,$height);
//背景色
$back=imagecolorallocate($im,0xFF,0xFF,0xFF);
//模糊点颜色
$pix=imagecolorallocate($im,187,230,247);
//字体色
$font=imagecolorallocate($im,41,163,238);
//绘模糊作用的点
mt_srand();
for($i=0;$i {
imagesetpixel($im,mt_rand(0,$width),mt_rand(0,$height),$pix);
}
imagestring($im, 5, 7, 5,$str, $font);
imagerectangle($im,0,0,$width-1,$height-1,$font);
imagepng($im);
imagedestroy($im);
$_SESSION["code"] = $str;
session_destroy();
?>
从另一个页面调用$_SESSION["code"] 居然为空? 为什么
------解决方案--------------------
session_destroy();
你都删除session了,另一个页面怎么会有session的内容?
------解决方案--------------------
session_destroy(); 晕,还没取就注销session()你怎么取?》