无法在验证码文件中提供$ _Session值

时间:2015-05-17 12:46:40

标签: php ajax html5 session

我无法在验证码文件中提供$_Session值。

这是我的验证码文件:

<?php
session_name('U');
session_start();
session_regenerate_id();
ini_set('session.cookie_httponly',true);
$string='';
for($i=0;$i<5;$i++){$string.=chr(rand(97,122));}
$_SESSION['img']=$string;
$fDir='includes/images/captcha_backgrounds/fonts/';
$fs=glob($fDir.'*.{ttf,otf}',GLOB_BRACE);
$RF=$fs[array_rand($fs)];
$imagesDir='includes/images/captcha_backgrounds/';
$images=glob($imagesDir.'*.{jpg}',GLOB_BRACE);
$randomImage=$images[array_rand($images)];
$image=imagecreatefromjpeg($randomImage);
$color=imagecolorallocate($image,rand(000,255),rand(000,255),rand(000,255));
imagettftext($image,40,0,20,70,$color,$RF,$_SESSION['img']);
header("Content-type:image/png");
imagepng($image);
?>

以下是我src验证码的方式:

<img src="captcha.php"/>

当我将表单提交到另一个页面时,它会返回错误:

  

$ _ SESSION(&#34; img&#34;)未定义

我的验证码图像很好,但会话无法正常工作请帮助。

另外,我正在使用AJAX提交表单。

除会话外一切正常。

1 个答案:

答案 0 :(得分:0)

  

谢谢@ Fred-ii-它的工作非常感谢您可以将其作为答案发布,以便我可以接受

  • 根据OP关于提问的请求。

header("Content-type:image/png");并且您在jpg大括号中使用glob

  • 您需要使用header('Content-Type: image/jpeg');