Heim  >  Artikel  >  Backend-Entwicklung  >  session验证码有关问题,刷新验证码,session的值不变,求高人解答

session验证码有关问题,刷新验证码,session的值不变,求高人解答

WBOY
WBOYOriginal
2016-06-13 11:10:541139Durchsuche

session验证码问题,刷新验证码,session的值不变,求高人解答

本帖最后由 yieri_z 于 2013-01-14 11:18:32 编辑 php做验证码程序,原本好使,换服务器后,验证码再刷新,验证码变了,但是session还是第一次初始的值,怀疑是服务器的问题,有高人知道怎么回事吗?


验证码代码checkimage.php页如下:
Header("Content-type: image/gif");

$border = 0; //是否要边框 1要:0不要
$how = 4; //验证码位数
$w = $how*15; //图片宽度
$h = 25; //图片高度
$fontsize = 5; //字体大小
$alpha = "ABCDEFGHIJKLMNPQRSTUVWXYZ"; //验证码内容1:字母
$number = "123456789"; //验证码内容2:数字
$randcode = ""; //验证码字符串初始化
srand((double)microtime()*1000000); //初始化随机数种子

$im = ImageCreate($w, $h); //创建验证图片

$bgcolor = ImageColorAllocate($im, 255, 255, 255); //设置背景颜色
ImageFill($im, 0, 0, $bgcolor); //填充背景色
if($border)
{
    $black = ImageColorAllocate($im, 0, 0, 0); //设置边框颜色
    ImageRectangle($im, 0, 0, $w-1, $h-1, $black);//绘制边框
}

for($i=0; $i{
    $alpha_or_number = mt_rand(0, 1); //字母还是数字
    $str = $alpha_or_number ? $alpha : $number;
    $which = mt_rand(0, strlen($str)-1); //取哪个字符
    $code = substr($str, $which, 1); //取字符
    $j = !$i ? 4 : $j+15; //绘字符位置
    $color3 = ImageColorAllocate($im, mt_rand(0,100), mt_rand(0,100), mt_rand(0,100)); //字符随即颜色
    ImageChar($im, $fontsize, $j, 3, $code, $color3); //绘字符
    $randcode .= $code; //逐位加入验证码字符串
}

for($i=0; $i{   
    $color2 = ImageColorAllocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); //干扰点颜色 
    ImageSetPixel($im, mt_rand(0,$w), mt_rand(0,$h), $color2); //干扰点
}

//把验证码字符串写入session
session_start();
$_SESSION['randcode'] = $randcode;

/*绘图结束*/
Imagegif($im);
ImageDestroy($im);
/*绘图结束*/


注册页reg.html调用代码:
验证码 

session验证码有关问题,刷新验证码,session的值不变,求高人解答
看不清?换一组


php接收后的页面:
header("content-type: text/html; charset=utf-8");
session_start();

echo "验证码session的值:".$_SESSION["randcode"];
echo "
";
echo "验证码提交的值:".$reg_checkcode;


刚运行reg.html页时,比如验证码是“A67E”,点击“看不清?换一组”后,验证码改变,但是$_SESSION['randcode']的值还是“A67E”,无论我点击几回“看不清?换一组”,都是验证码图片改了,但是session的值都是初始值不改变,这是什么问题?求高人帮下忙。
session 验证码
------解决方案--------------------
单步调试,没啥好办法。

检查session目录是否可写,硬盘空间是否不够之类的。
------解决方案--------------------
設置一下你的php.ini的error_report和display_error,讓他報出所有的錯誤來.
------解决方案--------------------
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn