php中验证码怎样用javascript 代码进行判断
已知:$_POST[yanzheng],$_SESSION[yanzheng]网页的javascript代码如下<SCRIPTlanguage=javascript>fu...
已知:$_POST[yanzheng],$_SESSION[yanzheng]
网页的javascript 代码如下
<SCRIPT language=javascript>
function CheckPost()
{
if (myform.name.value=="")
{
alert("请填写用户名");
myform.name.focus();
return false;
}......
怎样写javascript的代码来判断用户验证码是否输入正确. 展开
网页的javascript 代码如下
<SCRIPT language=javascript>
function CheckPost()
{
if (myform.name.value=="")
{
alert("请填写用户名");
myform.name.focus();
return false;
}......
怎样写javascript的代码来判断用户验证码是否输入正确. 展开
4个回答
展开全部
验证码一般都是在服务器随机产生,在html页面用ajax获取验证码来和用户输入的验证码进行比较
<script type="text/javascript">
var xmlHttp;
function createXMLHttpRequest()
{
if(window.ActiveXObject)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlHttp=new XMLHttpRequest();
}
}
function doit()
{
createXMLHttpRequest();
xmlHttp.onreadystatechange=handleStateChange;
xmlHttp.open("get","auth_code.php",true);
xmlHttp.send(null);
}
function handleStateChange()
{
if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200 || xmlHttp.status==0)
{
checkAuthCodeInput(xmlHttp.responseText);
}
}
}
function checkAuthCodeInput(authcode)
{
if(document.getElementById("自定义").value==auth)
{
return true;
}
return false;
}
</script>
<img src="auth_code.php" id="img_auth_code"/>
<a href="document.getElementById('img_auth_code').src='auth_code.php?code='+Math.random();">看不清,再换一张</a>
//该页面用于随机获取验证码rand_auth_code.php
<?php
function get_auth_code()
{
for($i=0;$i<5;$i++)
{
$_GLOBALS['rand_str'].=strtoupper(dechex(rand(0,15)));
rand_str_width+=imagefontwidth($i);
}
}
echo $_GLOBALS['rand_str'];
?>
<?php
include_once("rand_auth_code.php");//导入产生验证码的页面
$img_width=100;
$img_height=25;
$img=imagecreatetruecolor($img_width,$img_height);
$img_bg_color=imagecolorallocate($img,0,0,0);
imagefill($img,0,0,$img_bg_color);
$img_font_color=imagecolorallocate($img,225,225,225);
get_auth_code();//调用方法,产生随机验证码
$img_font_x=$img_width/2 - $rand_str_width/2;
$img_font_y=($img_height-imagefontwidth(5))/2;
imagestring($img,5,$img_font_x,$img_font_y,$_GLOBALS[rand_str],$img_font_color);
header("Content-Type:image/jpeg");
imagejpeg($img);
imagedestroy($img);
unset($_GLOBALS['rand_str']);
?>
不知是否符合你的要求
<script type="text/javascript">
var xmlHttp;
function createXMLHttpRequest()
{
if(window.ActiveXObject)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlHttp=new XMLHttpRequest();
}
}
function doit()
{
createXMLHttpRequest();
xmlHttp.onreadystatechange=handleStateChange;
xmlHttp.open("get","auth_code.php",true);
xmlHttp.send(null);
}
function handleStateChange()
{
if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200 || xmlHttp.status==0)
{
checkAuthCodeInput(xmlHttp.responseText);
}
}
}
function checkAuthCodeInput(authcode)
{
if(document.getElementById("自定义").value==auth)
{
return true;
}
return false;
}
</script>
<img src="auth_code.php" id="img_auth_code"/>
<a href="document.getElementById('img_auth_code').src='auth_code.php?code='+Math.random();">看不清,再换一张</a>
//该页面用于随机获取验证码rand_auth_code.php
<?php
function get_auth_code()
{
for($i=0;$i<5;$i++)
{
$_GLOBALS['rand_str'].=strtoupper(dechex(rand(0,15)));
rand_str_width+=imagefontwidth($i);
}
}
echo $_GLOBALS['rand_str'];
?>
<?php
include_once("rand_auth_code.php");//导入产生验证码的页面
$img_width=100;
$img_height=25;
$img=imagecreatetruecolor($img_width,$img_height);
$img_bg_color=imagecolorallocate($img,0,0,0);
imagefill($img,0,0,$img_bg_color);
$img_font_color=imagecolorallocate($img,225,225,225);
get_auth_code();//调用方法,产生随机验证码
$img_font_x=$img_width/2 - $rand_str_width/2;
$img_font_y=($img_height-imagefontwidth(5))/2;
imagestring($img,5,$img_font_x,$img_font_y,$_GLOBALS[rand_str],$img_font_color);
header("Content-Type:image/jpeg");
imagejpeg($img);
imagedestroy($img);
unset($_GLOBALS['rand_str']);
?>
不知是否符合你的要求
展开全部
你PHP是从DB中取图片地址吗? 如果是的话,那么图片就有对应的值。比如图片显示KKC 然后此图片就对应一个字段为KKC
然后你把此数据取到一个隐藏表单域 然后使用JS来获取此隐藏表单域的值
然后再获取用户输入框中的验证码值
最后对比用户输入的值是否与隐藏表单域中的值相等 就达到你所需要的功能要求了
因为我是写JAVA的所以没有PHP代码 只能提供一个思路给你 没有代码给你。。。。
然后你把此数据取到一个隐藏表单域 然后使用JS来获取此隐藏表单域的值
然后再获取用户输入框中的验证码值
最后对比用户输入的值是否与隐藏表单域中的值相等 就达到你所需要的功能要求了
因为我是写JAVA的所以没有PHP代码 只能提供一个思路给你 没有代码给你。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把myform.name.value==""改成myform.name.value==“用户名”不就可以了。。。但是一般的用户名是存在数据库中的,这就要先从数据库里读了。那就不能用js了。。要用PHP来读数据,然后比较。。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用户名一般都在数据库里,这个用javascript不行。要用php去读出数据再比较。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询