我写了我自己的php captcha脚本,带有一个jpeg头文件,所以我可以说
<img src="captcha.php">它通过将验证码的值存储到会话变量中来工作。当用户不能阅读它时,我希望它是可刷新的。
我第一次尝试
$("#refresh").click(function() {
$("#captcha").attr("src","captcha.php");
});但这当然没有意义,我需要进行一次ajax调用。你们都建议我怎么做呢?
附言:我也试过
$.ajax({
url: "captcha.php",
success: function(result) {
$("#captcha").attr("src",result);
}
});发布于 2010-08-16 17:06:09
第一种方法对我来说是有意义的:
$("#refresh").click(function() {
$("#captcha").attr("src","captcha.php?r=" + Math.random());
});我假设captcha.php所做的唯一一件事就是将验证码的值存储在会话变量中,并在每次访问时输出验证码图像。
因此,当您再次设置图像的src并向其添加一个查询字符串变量时,将再次向服务器脚本"captcha.php“发送一个请求,该脚本将重新生成验证码并将新值存储在会话变量中。
发布于 2010-08-16 16:53:34
将实际的CAPTHCHA字符串存储在_SESSION变量中是有意义的,但您应该在URL中显式指定状态:
$.ajax({
url: "captcha.php?generateNew",
success: function(result) {
$("#captcha").attr("src","captcha.php?foo="+Math.random());
}
});在php文件中:
if(isset($_GET['generateNew']){
$_SESSION['captchaString'] = generateCaptchaString();
}else{
dumpCaptchaImage();
}https://stackoverflow.com/questions/3491535
复制相似问题