已有40人关注
session问题
发表在PHP图书答疑 2010-08-24
是否精华
版块置顶:
今天碰到了一个奇怪的问题:平时验证码的代码用得好好的,然后重装服务器后,就出现了这样的问题:可以刷新验证码,可从第二个页面取出的验证码却不一致,都是首次进入注册页面时的验证码,举个例子:首次进入该网站的注册页面,然后第一次生成的验证码是8810,点看“看不清楚”刷新一次验证码为3602,如果输入3602提交注册的话,它会提示验证码出错,如果输入8810的话就可以成功注册了。不知道是不是配置的原因。我把生成验证码的文件上传和页面打印验证码的代码贴出来,明日的老师有空帮我看一下

<?php
    /*code by borlandapple 2009.3.27 */
$w = 80; //设置图片宽和高
$h = 26;
$str = Array(); //用来存储随机码
$string = "0123456789";//随机挑选其中4个字符,也可以选择更多,注意循环的时候加上,宽度适当调整
for($i = 0;$i < 4;$i++){
   $str[$i] = $string[rand(0,9)];
   $vcode .= $str[$i];
}
session_start(); //启用超全局变量session
$_SESSION["vcode"] = $vcode;
$im = imagecreatetruecolor($w,$h);
$white = imagecolorallocate($im,255,255,255); //第一次调用设置背景色
$black = imagecolorallocate($im,0,0,0); //边框颜色
imagefilledrectangle($im,0,0,$w,$h,$white); //画一矩形填充
imagerectangle($im,0,0,$w-1,$h-1,$black); //画一矩形框
//生成雪花背景
for($i = 1;$i < 200;$i++){
   $x = mt_rand(1,$w-9);
   $y = mt_rand(1,$h-9);
   $color = imagecolorallocate($im,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
   imagechar($im,1,$x,$y,"*",$color);
}
//将验证码写入图案
for($i = 0;$i < count($str);$i++){
   $x = 13 + $i * ($w - 15)/4;
   $y = mt_rand(3,$h / 3);
   $color = imagecolorallocate($im,mt_rand(0,225),mt_rand(0,150),mt_rand(0,225));
   imagechar($im,5,$x,$y,$str[$i],$color);
}
header("Content-type:image/jpeg"); //以jpeg格式输出,注意上面不能输出任何字符,否则出错
imagejpeg($im);
imagedestroy($im);


?>

取出页面
<?php
session_start();
echo($_SESSION["vcode"]);/*排印出来的验证码跟上面代码生成的验证码不一致(注:以前是能正常使用的)*/
?>



可能是我没有把情况说得明白,我再描述一下:
除了以上这种情况外,也出现了下面这种情况,管理员成功登录时把权限配置的参数$_SESSION["Power"]="info|new|"保存到session里面,然后在后台的其它页面检测时,发现保存到session信息丢失了一部分(现在的值是:$_SESSION["Power"]="new|",测试结果sessionid都是同一个的),注意,不是完全丢失。这就是我碰到的问题,服务器配置是window2003+IIS6+MYSQL5.0。

如果把代码放在本地测试(采用帝国网站系统的服务)一切都是正常的。所以我怀疑是服务器的配置问题,麻烦老师再解答 一下,谢谢啦!
分享到:
精彩评论 1
lzh
学分:0 LV1
2010-08-23
沙发
只是因为文件执行顺序问题,建议用ajax实现
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照