php代码,关于验证码刷新的问题
<divclass="postt2"><inputname="regverify"type="text"id="regverify"size="8"maxlength="...
<div class="postt2"><input name="regverify" type="text" id="regverify" size="8" maxlength="6" class="input" >
<img src="sub/authcode.php" alt="看不清楚请点击刷新验证码" name="gylverify" align="middle" id=gylverify style="cursor : pointer;" onClick="ReloadCode()"><font color="#666666"> <br>
(请将图中数字填入上面文本框中。</font><a onclick="ReloadCode()" style="cursor : pointer;"><font color="#1438CE"><u>看不清楚,换张图片</u></font></a>)</div>
【各位高手帮忙看看,这段代码是否有问题。不知道为什么一直无法在页面上直接刷新。】 展开
<img src="sub/authcode.php" alt="看不清楚请点击刷新验证码" name="gylverify" align="middle" id=gylverify style="cursor : pointer;" onClick="ReloadCode()"><font color="#666666"> <br>
(请将图中数字填入上面文本框中。</font><a onclick="ReloadCode()" style="cursor : pointer;"><font color="#1438CE"><u>看不清楚,换张图片</u></font></a>)</div>
【各位高手帮忙看看,这段代码是否有问题。不知道为什么一直无法在页面上直接刷新。】 展开
3个回答
展开全部
第一:你要保证你的验证码生成程序生成的是可以刷新的,你可以打开sub/authcode.php 刷新看看那个图片会不会变,如果不会,在生成验证码的随机数前初始化一下种子:srand((double)microtime()*1000000);
尽管php 4.0以后不再需要初始化,但实践中,还是会碰到这里问题,所以初始化,万无一失。
第二,防止缓存,可以在输出验证码图片前,加上 头部缓存信息控制:
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
//这后面再输出验证码图片。
第三,由于浏览器有缓存,特别是图片,会缓存下来,导致不会刷新,所以你可以在 reloadcode()这里添加一个参数用来改变url,这样可以强制浏览器重新加载验证码图片,
比如:
<script>
function ReloadCode(){
document.getElementById('gylverify ').src='sub/authcode.php?id='+ Math.random() ;
}
万无一失,
</script>
尽管php 4.0以后不再需要初始化,但实践中,还是会碰到这里问题,所以初始化,万无一失。
第二,防止缓存,可以在输出验证码图片前,加上 头部缓存信息控制:
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
//这后面再输出验证码图片。
第三,由于浏览器有缓存,特别是图片,会缓存下来,导致不会刷新,所以你可以在 reloadcode()这里添加一个参数用来改变url,这样可以强制浏览器重新加载验证码图片,
比如:
<script>
function ReloadCode(){
document.getElementById('gylverify ').src='sub/authcode.php?id='+ Math.random() ;
}
万无一失,
</script>
展开全部
onClick="this.src = 'sub/authcode.php';"
一句就搞定啊
=================
最多你用JS 再在后面 加个随即的参数 'sub/authcode.php?thistime=xxxx'
xxx 用JS 随即个数防止缓存就好了
一句就搞定啊
=================
最多你用JS 再在后面 加个随即的参数 'sub/authcode.php?thistime=xxxx'
xxx 用JS 随即个数防止缓存就好了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
onclick="ReloadCode()" style="cursor : pointer;">你是否定义了javascript的ReloadCode()函数.问题就在这里。你好好检查一下你的javascript代码吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询