【问题标题】:Unable to give $_Session value in captcha file无法在验证码文件中提供 $_Session 值
【发布时间】:2015-05-23 20:47:11
【问题描述】:

我无法在验证码文件中提供$_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("img") 未定义

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

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

除了会话之外一切都很好。

【问题讨论】:

  • session_start(); 在使用会话的所有 个文件中吗?
  • 是的,它在所有文件中@Fred-ii-
  • 将错误报告添加到文件顶部,紧跟在您的打开 PHP 标记之后,例如 &lt;?php error_reporting(E_ALL); ini_set('display_errors', 1);,然后是其余代码,看看它是否会产生任何结果。
  • 这个header("Content-type:image/png");,你正在使用jpg。试试header('Content-Type: image/jpeg');
  • 谢谢@Fred-ii- 非常感谢您可以将其发布为答案以便我接受它

标签: php ajax html session


【解决方案1】:

谢谢@Fred-ii- 非常感谢你能把它作为答案发布,以便我接受它

  • 根据 OP 的要求关闭问题。

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

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

【讨论】:

    猜你喜欢
    • 2012-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多