0

我想创建一个登录页面。因此,我使用以下 html 代码在登录表单中放置了一张验证码图片:

<img name="captcha" id="captcha" src="captcha/CaptchaSecurityImages.php?width=90&height=28&characters=5"/>

我放了一个按钮,如果验证码不可读,用户可以单击该按钮更改验证码,如下所示:

<input type="button" name="new_Captcha_button" onClick="new_captcha()"/>

我写了一个脚本如下,它只在 chrome 中工作:

<script type="text/javascript">
function new_captcha()
    {   
        document.images["captcha"].src = "captcha/CaptchaSecurityImages.php?width=90&height=28&characters=5";
    }
</script>

但它在其他浏览器中不起作用,因此我将之前的代码替换为以下代码:

<script type="text/javascript">
function new_captcha()
    {
        var xmlhttp;
        if (window.XMLHttpRequest)
          {// code for IE7+, Firefox, Chrome, Opera, Safari
          xmlhttp=new XMLHttpRequest();
          }
        else
          {// code for IE6, IE5
          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
          }
        xmlhttp.onreadystatechange=function()
          {
          if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
                document.getElementById("captcha").src = xmlhttp.responseText;
            }
          }
        xmlhttp.open("GET","captcha/CaptchaSecurityImages.php?width=90&height=28&characters=5",true);
        xmlhttp.send();
    }

所以请告诉我我需要对代码进行哪些更改才能使其正确。我想我需要更改以下行:

document.getElementById("captcha").src = xmlhttp.responseText;

非常感谢。

4

2 回答 2

2
<script type="text/javascript">
function new_captcha()
    {   
        document.getElementById('captcha').src = 'captcha/CaptchaSecurityImages.php?width=90&height=28&characters=5&_t=' + Math.random(1);
    }
</script>

不需要使用 ajax,函数 new_captcha() 就可以了。

于 2013-03-02T09:05:41.647 回答
1

你可以尝试这样做

登录.php

<div id="captcha_container"></div>
<input type="button" id="btn_recaptcha" value="Recaptcha">

<script>
function ajax_loadpage(loadUrl,output_container)
    {
        $.post
        (
            loadUrl,
            {language: "php", version: 5},function(responseText){$(output_container).html(responseText);},"html"
        );
    }

ajax_loadpage("captcha_page.php","#captcha_container");

$('#btn_recaptcha').click(function(){
   ajax_loadpage("captcha_page.php","#captcha_container");
})
</script>
______________________________________________________________________________________
captcha_page.php
<img width="212" height="53" src="captcha.php">

captcha.php 包含我的验证码,它包含一个header ("Content-type: image/gif");代码,所以我需要一个额外的 php 文件,我可以在其中保存图像文件,从而使用我的 captcha_page.php。为我工作:)

于 2013-03-02T10:53:25.003 回答