当前位置: 代码迷 >> PHP >> session保存验证码的有关问题
  详细解决方案

session保存验证码的有关问题

热度:136   发布时间:2012-03-23 12:06:21.0
session保存验证码的问题
我在code页面生成验证码的原字符 保存到session中 从另一个页面调用 怎么会是空呢? 奇怪

code 的源程序

<?php 
//checkNum.php 
session_start(); 
function random($len) 

$srcstr="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; 
mt_srand();//配置乱数种子 
$strs=""; 
for($i=0;$i <$len;$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 <1000;$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()你怎么取?》
  相关解决方案