【发布时间】:2020-02-10 03:06:23
【问题描述】:
我已经阅读了这个论坛和整个网络,了解为什么 Firefox 浏览器无法通过单击按钮刷新用 PHP 创建的验证码图像。我的脚本适用于 Edge、Chrome、Safari、Brave,但不适用于 Firefox,事实上我已经构建了 3 个不同的脚本,并且所有脚本都在发生同样的事情。我不擅长编码,并按照教程到达这里,但我已经重写了这些脚本以尝试使它们工作,他们所做的但不是在 FF 中。
如果我使用浏览器自己的刷新,Firefox 将刷新图像,它会加载一次图像,仅此而已。
有人可以帮助我并帮助解释为什么会发生这种情况。
实际测试页面
http://www.nailit.nz/REFRESH%20CAPTCHA%20ONLY/index_danials_version.php
感谢您的帮助 克里斯
带有图像页面的按钮
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#btn").click(function(){
$("#test").load("captcha_image.php");
return false;
});
});
</script>
</head>
<body>
<div id="test">
<p>This is the first bit of content</p>
</div>
<button id="btn">Change Image</button>
</body>
</html>
图片来源页面
<img src ="captcha_CHRIS.php">
PHP 中的创建图像页面
<?php
session_start();
header("Pragma:no-cache");
$chars = "0123456789abcderghijklmnopABCDEFGHIJKLMNOPQRSTUVWXYZ";
$random_string = '';
for($i = 0; $i < 5; $i++){
$random_string .= $chars[rand(0, strlen($chars)-1)];
}
$_SESSION['captcha'] = strtolower($random_string);
$captcha_img = imagecreatefrompng("assets/captcha_background.png");
/* Below first numbers desc: 1)font size. 2)rotation angle. 3)left position. 4)top position */
imagettftext($captcha_img, 24, -8, 8, 32, imagecolorallocate($captcha_img, 255, 114, 0),"assets/SedgwickAve-Regular.ttf",$random_string);
header("Content-type: image/png");
imagepng($captcha_img, null, 0);
imagedestroy($captcha_img);
?>
【问题讨论】:
标签: javascript php html ajax session