1

我遇到了一个非常令人沮丧的问题,我似乎无法找到根本原因。我正在尝试在这里找到一个简单的验证码:https ://github.com/claviska/simple-php-captcha

该代码未从 github 更改,并按照说明添加到我的网站。使用 IE 8 时,图像显示为损坏的图像,但如果我刷新页面 (F5),图像会神奇地出现。Firefox 和 Chrome 甚至 Safari 都没有显示图像的问题。我不知道为什么它在进入网页时显示为损坏。我花了几天的时间研究,很迷茫。

任何帮助深表感谢。

编辑:我一直在密切关注 php 日志,并注意到该函数似乎被调用了两次。似乎进入页面时,一切都很好,并且生成了图像。但是,在进入页面和最终加载之间,再次调用该函数,并且浏览器试图显示脚本创建的第一张图像,该图像在那时已经被销毁。这只发生在 IE 中,这就是我如此困惑的原因。

用于测试的代码:

<?php
session_start();
$_SESSION = array();
include("captcha.php");
$_SESSION['captcha'] = captcha();
?>

<html>
<body>
<table>
     <tr>
        <td width="45%"><?php echo ('<img src="' . $_SESSION['captcha']['image_src'] . '" alt="CAPTCHA" />'); ?></p></td>
        <td width="4%">:</td>
        <td><input name="captcha" type="text" id="captcha" required><b><font color="red"> *</font></b></td>
     </tr>
</table>

</body>
</html>
4

1 回答 1

0

这是一种疯狂的预感,它可能行不通。尝试将您的代码更改为:

session_start();
include("captcha.php");
$captcha = captcha();
$_SESSION['captcha'] = $captcha['code'];
session_write_close();

然后在您的 HTML 中,将 URL 称为$captcha['image_src']. 试图确保这不是会话锁定问题。

于 2012-08-27T19:49:12.717 回答