php 获取验证码session值问题
<imgstyle="cursor:pointer"title="刷新验证码"id="refresh"border='0'src='createpic.php'oncli...
<img style="cursor:pointer" title="刷新验证码" id="refresh" border='0' src='createpic.php'
onclick="document.getElementById('refresh').src='createpic.php?t='+Math.random()"/> <a href="#" onclick="javascript:document.getElementById('refresh').src='createpic.php?t='+Math.random()">看不清楚</a><?
session_start();
?>
<input name="hiddenField" id="hiddenField" value="<?=$_SESSION['vcode'] ?>" />
代码如上,,,我在createpic.php里面生成了验证码并保存在了session里面,为什么hiddenField这个文本框获取的session、值总是上次显示的呢?总是和当前显示的不一样???为什么???有什么解决办法???? 展开
onclick="document.getElementById('refresh').src='createpic.php?t='+Math.random()"/> <a href="#" onclick="javascript:document.getElementById('refresh').src='createpic.php?t='+Math.random()">看不清楚</a><?
session_start();
?>
<input name="hiddenField" id="hiddenField" value="<?=$_SESSION['vcode'] ?>" />
代码如上,,,我在createpic.php里面生成了验证码并保存在了session里面,为什么hiddenField这个文本框获取的session、值总是上次显示的呢?总是和当前显示的不一样???为什么???有什么解决办法???? 展开
1个回答
展开全部
因为你的验证码图片是在已经输出了<?=$_SESSION['vcode']?>之后才去读取的,当读取图片时,生成的是新的验证码,但是你在输出session到隐藏的input里面时,图片还没有被浏览器加载,所以验证码图片上的数字和隐藏的不同!
输出session是在服务器端
而加载图片却是在HTML代码被发送到浏览器端之后
他们是不同步的
验证码不能直接放在HTML里发送给客户端的,这样的话要不要验证码没有什么意义!验证码是为了防止不法登录(暴力破解)而设置的,如果你把验证码放在HTML代码里,那么对于暴力破解就失去意义了
输出session是在服务器端
而加载图片却是在HTML代码被发送到浏览器端之后
他们是不同步的
验证码不能直接放在HTML里发送给客户端的,这样的话要不要验证码没有什么意义!验证码是为了防止不法登录(暴力破解)而设置的,如果你把验证码放在HTML代码里,那么对于暴力破解就失去意义了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询