Php 仅在页面刷新时加载验证码
我遇到了一个非常令人沮丧的问题,我似乎找不到根本原因。我正在尝试对以下内容执行一个简单的验证码: 代码与github保持不变,并按照说明添加到我的网站。使用IE 8时,图像显示为断开的图像,但如果我刷新页面(F5),图像会神奇地出现。Firefox和Chrome甚至Safari都没有显示图像的问题。我不知道为什么它在进入网页时显示为已损坏。我花了几天的时间研究,现在完全迷路了 非常感谢您的帮助 编辑: 我一直在密切关注php日志,并注意到该函数似乎被调用了两次。似乎当进入页面时,一切都很好,并且生成了图像。但是,在进入页面和最终加载之间,再次调用该函数,浏览器将尝试显示脚本创建的第一个图像,该图像在此时已被销毁。这只发生在IE中,这就是为什么我如此困惑的原因 用于测试的代码:Php 仅在页面刷新时加载验证码,php,Php,我遇到了一个非常令人沮丧的问题,我似乎找不到根本原因。我正在尝试对以下内容执行一个简单的验证码: 代码与github保持不变,并按照说明添加到我的网站。使用IE 8时,图像显示为断开的图像,但如果我刷新页面(F5),图像会神奇地出现。Firefox和Chrome甚至Safari都没有显示图像的问题。我不知道为什么它在进入网页时显示为已损坏。我花了几天的时间研究,现在完全迷路了 非常感谢您的帮助 编辑: 我一直在密切关注php日志,并注意到该函数似乎被调用了两次。似乎当进入页面时,一切都很好,并且
<?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>
:
*
这是一种疯狂的预感,可能不起作用。尝试将代码更改为:
session_start();
include("captcha.php");
$captcha = captcha();
$_SESSION['captcha'] = $captcha['code'];
session_write_close();
然后在HTML中,将URL称为
$captcha['image\u src']
。正在尝试确保这不是会话锁定问题。我的钱在$\u会话['captcha']['image\u src']
;它的内容是什么?函数本身返回:/captcha.php?\u captcha&;t=0.55984800+1346094060为什么使用$\u SESSION=array()代码>?通过这样做,您将$\u会话
var重置为数组
。我想你应该这样写:if(!session_id())session_start()代码>,就是这样。此外,我无法理解IE的确切问题。谢谢,杰克。相同的结果:(.Image将仅在刷新时显示。@user1628449然后您应该使用file\u put\u contents()
检查captcha.php
是否正确读取会话,以便它不会影响它发送的图像。