php + javascript 验证验证码 本帖最后由 majia_2009 于 2009-08-08 15:22:19 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果只在客户端验证会不安全的,你可以采用ajax的方式来验证 还不会哦,刚刚学习php不到一个星期 那就客户端和服务器端都验证吧先将验证码的值赋给一个hiddenjs验证时拿这个值与用户输入的验证码对比如果正确,数据将会提交到服务器端,这个时候再用PHP验证一遍 是这样吗?<input type="hidden" id="test" value=<?php echo $_SESSION['codenumber']?>>但是这样之后,我如果点验证码的图片,刷新验证码之后,这个值就没有刷新哦但是如果在javascript:renumber里面重新个这个赋值的话,就又要调用session了要是在number.php那个文件里面刷新的话,也只能存在session里面,不知道怎么才能在更新验证码的同时,更新hidden的值了? 点验证码的图片就可以刷新了<img src="number.php" name="number" id="number" onclick="javascript:renumber()" alt="看不清,换一张" /> 图片是生成在指定目录的吗?renumber怎么拿到图片路径的?能不能贴上来看看,或者讲一下具体的执行过程 <?phpsession_start();srand((double)microtime()*1000000);$im=imagecreate(45,20);$bk=imagecolorallocate($im,200,200,200);imagefill($im,0,0,$bk);$_SESSION["codenumber"]="";for($i=0;$i<4;$i++){ $x=mt_rand(1,5); $y=mt_rand(1,3); $font=mt_rand(3,5); $tmp=dechex(mt_rand(0,15)); $_SESSION['codenumber'].=$tmp; imagestring($im,$font,($x+$i*10),$y,$tmp,imagecolorallocate($im,rand(0,130),rand(0,130),rand(0,130)));} imagepng($im);imagedestroy($im);?> function renumber(){ document.getElementById('number').src="number.php?"+ Math.random();} 这样就比较麻烦采用ajax来做吧,很方便的查一下prototype.js或者jquery.js等框架的用法,选择其中一个框架来实现ajax,比较容易些,网上有很多使用教程的。 我刚学一个星期php哦,还要学javascript现在你又让我学ajax, prototype.js, jquery.js等。。我也想周末两天把这些都学会了,可惜我还没那么强悍关键是下个星期一就要出来效果,呵呵不过我用cookie实现了那个效果谢谢你这么热心! mysql 日期行转列,请教各位SQL大神 求助关于正则\b的用法 为什么不用addslashes 或者htmlspecialchars 怎么抓取远程浏览器发送的文件 apache配置问题 最基础的读取数据库问题!!在线等。。。。 请教onchange问题 up也有分 php遇到日期怎么办? SQL中反斜杠问题 怎么解决win8系统安装zend权限不足的问题 排序问题,求改代码,急! 路径是对的,服务器不显示图片
如果只在客户端验证会不安全的,
你可以采用ajax的方式来验证
js验证时拿这个值与用户输入的验证码对比如果正确,数据将会提交到服务器端,这个时候再用PHP验证一遍
能不能贴上来看看,或者讲一下具体的执行过程
<?php
session_start();
srand((double)microtime()*1000000);
$im=imagecreate(45,20);
$bk=imagecolorallocate($im,200,200,200);
imagefill($im,0,0,$bk);
$_SESSION["codenumber"]="";
for($i=0;$i<4;$i++){
$x=mt_rand(1,5);
$y=mt_rand(1,3);
$font=mt_rand(3,5);
$tmp=dechex(mt_rand(0,15));
$_SESSION['codenumber'].=$tmp;
imagestring($im,$font,($x+$i*10),$y,$tmp,imagecolorallocate($im,rand(0,130),rand(0,130),rand(0,130)));
}
imagepng($im);
imagedestroy($im);
?>
{
document.getElementById('number').src="number.php?"+ Math.random();
}
采用ajax来做吧,很方便的
查一下prototype.js或者jquery.js等框架的用法,选择其中一个框架来实现ajax,比较容易些,网上有很多使用教程的。
现在你又让我学ajax, prototype.js, jquery.js等。。
我也想周末两天把这些都学会了,可惜我还没那么强悍
关键是下个星期一就要出来效果,呵呵不过我用cookie实现了那个效果谢谢你这么热心!