登陆页老是提示验证码错误,validate验证控件IE下用remote方法明明返回true 但是还是报错,提示验证码错误

登陆页后台:login.php

<?php

/**

* 前台登录 退出操作

*

*/

defined(‘IN_B2B2C‘) or exit(‘Access Invalid!‘);

header("Content-type: text/html; charset=utf-8");

class loginControl extends BaseHomeControl {

public function __construct(){

parent::__construct();

Tpl::output(‘hidden_nctoolbar‘, 1);

}

/**

* 登录操作

*

*/

public function indexOp(){

Language::read("home_login_index");

$lang = Language::getLangContent();

$model_member = Model(‘member‘);

//检查登录状态

$model_member->checkloginMember();

if ($_GET[‘inajax‘] == 1 && C(‘captcha_status_login‘) == ‘1‘){

$script = "document.getElementById(‘codeimage‘).src=‘".APP_SITE_URL."/index.php?act=seccode&op=makecode&nchash=".getNchash()."&t=‘ + Math.random();";

}

$result = chksubmit(true,C(‘captcha_status_login‘),‘num‘);

if ($result !== false){

if ($result === -11){

showDialog($lang[‘login_index_login_illegal‘]);

}elseif ($result === -12){

showDialog($lang[‘login_index_wrong_checkcode‘]);

}

if (processClass::islock(‘login‘)) {

showDialog($lang[‘nc_common_op_repeat‘],SHOP_SITE_URL);

}

$obj_validate = new Validate();

$obj_validate->validateparam = array(

array("input"=>$_POST["user_name"], "require"=>"true", "message"=>$lang[‘login_index_username_isnull‘]),

array("input"=>$_POST["password"], "require"=>"true", "message"=>$lang[‘login_index_password_isnull‘]),

);

$error = $obj_validate->validate();

if ($error != ‘‘){

showValidateError($error);exit;

}

$array = array();

$array[‘member_name‘] = $_POST[‘user_name‘];

$array[‘member_passwd‘] = md5($_POST[‘password‘]);

$member_info = $model_member->infoMember($array);

if(is_array($member_info) and !empty($member_info)) {

if(!$member_info[‘member_state‘]){

showDialog($lang[‘login_index_account_stop‘]);

}

}else{//再此处验证为了防止原来 手机号就是账号的用户自动加GFM登陆不上

$array[‘member_name‘] = ‘GFM‘.$_POST[‘user_name‘];

$member_info = $model_member->infoMember($array);

if(is_array($member_info) and !empty($member_info)) {

if(!$member_info[‘member_state‘]){

showDialog($lang[‘login_index_account_stop‘]);

}

}else{

processClass::addprocess(‘login‘);

showDialog($lang[‘login_index_login_fail‘]);

}

}

$model_member->createSession($member_info);

processClass::clear(‘login‘);

// cookie中的cart存入数据库

$this->mergecart($member_info);

//添加会员积分

if (C(‘points_isuse‘)){

//一天内只有第一次登录赠送积分

if(trim(@date(‘Y-m-d‘,$member_info[‘member_login_time‘]))!=trim(date(‘Y-m-d‘))){

$points_model = Model(‘points‘);

$points_model->savePointsLog(‘login‘,array(‘pl_memberid‘=>$member_info[‘member_id‘],‘pl_membername‘=>$member_info[‘member_name‘]),true);

}

}

showDialog($lang[‘login_index_login_success‘],$_POST[‘ref_url‘] == ‘‘ ? ‘reload‘ : $_POST[‘ref_url‘],‘succ‘,$extrajs);

}else{

//登录表单页面

$_pic = @unserialize(C(‘login_pic‘));

if ($_pic[0] != ‘‘){

Tpl::output(‘lpic‘,UPLOAD_SITE_URL.‘/‘.ATTACH_LOGIN.‘/‘.$_pic[array_rand($_pic)]);

}else{

Tpl::output(‘lpic‘,UPLOAD_SITE_URL.‘/‘.ATTACH_LOGIN.‘/‘.rand(1,4).‘.jpg‘);

}

if(empty($_GET[‘ref_url‘])) {

$ref_url = getReferer();

if (!preg_match(‘/act=login&op=logout/‘, $ref_url)) {

$_GET[‘ref_url‘] = $ref_url;

}

}

//新添

if(!empty($_GET[‘ref_url‘])&&preg_match(‘/pusername=/‘,$_GET[‘ref_url‘])) {

$arr=explode("&",$_GET[‘ref_url‘]);

$pusername=$arr[2];

$pusername=substr($pusername,10);

if(!empty($pusername)) {

Tpl::output(‘ref_url_ret‘,$_GET[‘ref_url‘]);

}

}

Tpl::output(‘html_title‘,C(‘site_name‘).‘ - ‘.$lang[‘login_index_login‘]);

if ($_GET[‘inajax‘] == 1){

Tpl::showpage(‘login_inajax‘,‘null_layout‘);

}else{

Tpl::showpage(‘login‘);

}

}

}

/**

* 退出操作

*

* @param int $id 记录ID

* @return array $rs_row 返回数组形式的查询结果

*/

public function logoutOp(){

Language::read("home_login_index");

$lang = Language::getLangContent();

session_unset();

session_destroy();

/* 清除member_id, cookie   Author  Yusure */

setcookie( ‘member_id‘, "", time()-3600, ‘/‘, C(‘cookie_domain‘), false );

setNcCookie(‘goodsnum‘,‘‘,-3600);

if(empty($_GET[‘ref_url‘])){

$ref_url = getReferer();

}else {

$ref_url = $_GET[‘ref_url‘];

}

showMessage($lang[‘login_logout_success‘],‘index.php?act=login&ref_url=‘.urlencode($ref_url),‘html‘,‘succ‘,1,2000);

}

/**

* 会员注册页面

*

* @param

* @return

*/

public function registerOp() {

Language::read("home_login_register");

$lang = Language::getLangContent();

$model_member = Model(‘member‘);

$model_member->checkloginMember();

Tpl::output(‘html_title‘,C(‘site_name‘).‘ - ‘.$lang[‘login_register_join_us‘]);

Tpl::showpage(‘register‘);

}

/**

* 会员添加操作

*

* @param

* @return

*/

public function usersaveOp() {

//重复注册验证

$dlM = Model("distribute_level");

$min_level_info = $dlM->getMinLevelInfo("grade" ,"is_valid = ‘1‘");

if (processClass::islock(‘reg‘)){

showDialog(Language::get(‘nc_common_op_repeat‘),‘index.php‘);

}

Language::read("home_login_register");

$lang = Language::getLangContent();

$model_member = Model(‘member‘);

$model_member->checkloginMember();

$result = chksubmit(true,C(‘captcha_status_login‘),‘num‘);

if ($result !== false){

if ($result === -11){

showDialog($lang[‘invalid_request‘]);

}elseif ($result === -12){

showDialog($lang[‘login_usersave_wrong_code‘]);

}

}

$register_info = array();

$register_info[‘username‘] = $_POST[‘user_name‘];

$register_info[‘password‘] = $_POST[‘password‘];

$register_info[‘password_confirm‘] = $_POST[‘password_confirm‘];

$register_info[‘email‘] = $_POST[‘email‘];

$member_info = $model_member->register($register_info);

if(!isset($member_info[‘error‘])) {

/*用户注册后就要成为分销商,等级是最低的,且父与祖父是空

*Modify by Chen

*/

$dlM = Model("distribute_level");

$min_level_info = $dlM->getMinLevelInfo("grade" ,"is_valid = ‘1‘");

$level_id = $min_level_info[‘level_id‘];

$dis_mem[‘member_id‘]  = $member_info[‘member_id‘];

$dis_mem[‘member_name‘] = $member_info[‘member_name‘];

$dis_mem[‘distribute_level‘] = $level_id;

$dis_mem[‘distribute_addtime‘] = time();

$dis_mem[‘is_valid‘] = "1";

//$dis_mem[‘is_reg_member‘] = 1;

$dmM = Model("distribute_member");

$dmM->addMemberInfo($dis_mem);

$model_member->createSession($member_info);

processClass::addprocess(‘reg‘);

$this->mergecart();

$_POST[‘ref_url‘] = (strstr($_POST[‘ref_url‘],‘logout‘)=== false && !empty($_POST[‘ref_url‘]) ? $_POST[‘ref_url‘] : ‘index.php?act=member&op=home‘);

showDialog(str_replace(‘site_name‘,C(‘site_name‘),$lang[‘login_usersave_regist_success_ajax‘]),$_POST[‘ref_url‘],‘succ‘,$synstr,3);

} else {

showDialog($member_info[‘error‘]);

}

}

/**

* 会员名称检测

*

* @param

* @return

*/

public function check_memberOp() {

/**

* 实例化模型

*/

$model_member = Model(‘member‘);

$check_member_name = $model_member->infoMember(array(‘member_name‘=>trim($_GET[‘user_name‘])));

if(is_array($check_member_name) and count($check_member_name)>0) {

echo ‘false‘;

} else {

echo ‘true‘;

}

}

/**

* 登录之后,把登录前购物车内的商品加到购物车表

*

*/

private function mergecart($member_info = array()){

if (!$member_info[‘member_id‘]) return;

$model_cart = Model(‘cart‘);

$save_type = C(‘cache.type‘) != ‘file‘ ? ‘cache‘ : ‘cookie‘;

$cart_new_list = $model_cart->listCart($save_type);

if (empty($cart_new_list)) return;

//取出当前DB购物车已有信息

$cart_cur_list = $model_cart->listCart(‘db‘,array(‘buyer_id‘=>$_SESSION[‘member_id‘]));

//数据库购物车已经有的商品,不再添加

if (!empty($cart_cur_list) && is_array($cart_cur_list) && is_array($cart_new_list)) {

foreach ($cart_new_list as $k=>$v){

if (!is_numeric($k) || in_array($k,array_keys($cart_cur_list))){

unset($cart_new_list[$k]);

}

}

}

//查询在购物车中,不是店铺自己的商品,未禁售,上架,有库存的商品,并加入DB购物车

$mode_goods= Model(‘goods‘);

$condition = array();

if (!empty($_SESSION[‘store_id‘])) {

$condition[‘store_id‘] = array(‘neq‘,$_SESSION[‘store_id‘]);

}

$condition[‘goods_id‘] = array(‘in‘,array_keys($cart_new_list));

$goods_list = Model(‘goods‘)->getGoodsOnlineList($condition);

if (!empty($goods_list)){

foreach ($goods_list as $goods_info){

$goods_info[‘buyer_id‘] = $member_info[‘member_id‘];

$model_cart->addCart($goods_info,‘db‘,$cart_new_list[$goods_info[‘goods_id‘]][‘goods_num‘]);

}

}

//最后清空登录前购物车内容

$model_cart->clearCart($save_type);

}

/**

* 电子邮箱检测

*

* @param

* @return

*/

public function check_emailOp() {

$model_member = Model(‘member‘);

$check_member_email = $model_member->infoMember(array(‘member_email‘=>trim($_GET[‘email‘])));

if(is_array($check_member_email) and count($check_member_email)>0) {

echo ‘false‘;

} else {

echo ‘true‘;

}

}

/**

* 手机号码检测

*

* @param

* @return

*/

public function check_telOp() {

/**

* 实例化模型

*/

$model_member = Model(‘member‘);

$check_member_name = $model_member->infoMember(array(‘member_tel‘=>trim($_GET[‘member_tel‘])));

if(is_array($check_member_name) and count($check_member_name)>0) {

echo ‘false‘;

} else {

echo ‘true‘;

}

}

/**

* 忘记密码页面

*/

public function forget_passwordOp(){

/**

* 读取语言包

*/

Language::read(‘home_login_register‘);

$_pic = @unserialize(C(‘login_pic‘));

if ($_pic[0] != ‘‘){

Tpl::output(‘lpic‘,UPLOAD_SITE_URL.‘/‘.ATTACH_LOGIN.‘/‘.$_pic[array_rand($_pic)]);

}else{

Tpl::output(‘lpic‘,UPLOAD_SITE_URL.‘/‘.ATTACH_LOGIN.‘/‘.rand(1,4).‘.jpg‘);

}

Tpl::output(‘html_title‘,C(‘site_name‘).‘ - ‘.Language::get(‘login_index_find_password‘));

Tpl::showpage(‘find_password‘);

}

/**

* 找回密码的发邮件处理

*/

public function find_passwordOp(){

Language::read(‘home_login_register‘);

$lang = Language::getLangContent();

$result = chksubmit(true,true,‘num‘);

if (!$result){

showDialog(‘非法提交‘);

}elseif ($result === -11){

showDialog(‘非法提交‘);

}elseif ($result === -12){

showDialog(‘验证码错误‘);

}

if(empty($_POST[‘username‘])){

showDialog($lang[‘login_password_input_username‘]);

}

if (processClass::islock(‘forget‘)) {

showDialog($lang[‘nc_common_op_repeat‘],‘reload‘);

}

$member_model = Model(‘member‘);

$member = $member_model->infoMember(array(‘member_name‘=>$_POST[‘username‘]));

if(empty($member) or !is_array($member)){

processClass::addprocess(‘forget‘);

showDialog($lang[‘login_password_username_not_exists‘],‘reload‘);

}

if(empty($_POST[‘email‘])){

showDialog($lang[‘login_password_input_email‘],‘reload‘);

}

if(strtoupper($_POST[‘email‘])!=strtoupper($member[‘member_email‘])){

processClass::addprocess(‘forget‘);

showDialog($lang[‘login_password_email_not_exists‘],‘reload‘);

}

processClass::clear(‘forget‘);

//产生密码

$new_password = random(15);

if(!($member_model->updateMember(array(‘member_passwd‘=>md5($new_password)),$member[‘member_id‘]))){

showDialog($lang[‘login_password_email_fail‘],‘reload‘);

}

$cron_data = array(‘exetime‘=>TIMESTAMP,‘exeid‘=>$member[‘member_id‘],‘type‘=>2,‘code‘=>‘email_touser_find_password‘,

‘content‘=>array(array(

‘site_name‘ => $GLOBALS[‘setting_config‘][‘site_name‘],

‘site_url‘ => SHOP_SITE_URL,

‘user_name‘ => $_POST[‘username‘],

‘new_password‘ => $new_password

),false));

$this->addcron($cron_data,true);

$extend_js = "<script src=‘".SHOP_SITE_URL."/index.php?act=login&op=send_email‘></script>";

showMessage($lang[‘login_password_email_success‘].$extend_js,SHOP_SITE_URL);

}

/**

* 异步发送邮件

*/

public function send_emailOp() {

Model(‘member‘)->checkloginMember();

$model_cron = Model(‘cron‘);

$condition = array();

$condition[‘type‘] = 2;

$condition[‘exeid‘] = $_SESSION[‘member_id‘];

$condition[‘code‘] = ‘email_touser_find_password‘;

$cron_info = $model_cron->getCronInfo();

if (empty($cron_info)) return ;

$content = unserialize($cron_info[‘content‘]);

if (!$content[1]) $content[1] = false;

$this->send_notice($cron_info[‘exeid‘],$cron_info[‘code‘],$content[0],$content[1]);

$model_cron->delCron($condition);

}

/**

* 登陆生成token

*/

private function _get_token($member_id, $member_name, $client) {

$model_mb_user_token = Model(‘mb_user_token‘);

//重新登陆后以前的令牌失效

//暂时停用

//$condition = array();

//$condition[‘member_id‘] = $member_id;

//$condition[‘client_type‘] = $_POST[‘client‘];

//$model_mb_user_token->delMbUserToken($condition);

//生成新的token

$mb_user_token_info = array();

$token = md5($member_name . strval(TIMESTAMP) . strval(rand(0,999999)));

$mb_user_token_info[‘member_id‘] = $member_id;

$mb_user_token_info[‘member_name‘] = $member_name;

$mb_user_token_info[‘token‘] = $token;

$mb_user_token_info[‘login_time‘] = TIMESTAMP;

$mb_user_token_info[‘client_type‘] = $client;

$result = $model_mb_user_token->addMbUserToken($mb_user_token_info);

if($result) {

return $token;

} else {

return null;

}

}

/* 根据用户输入的地址解密参数

* */

public function  decodeUrlOp(){

$auth = urldecode($_GET[‘auth‘]);

$authSplitKey=‘GYPAUTH‘;//避免短信端在url添加的内容无法用explode分割【分割字符串】

$auths = explode($authSplitKey,$auth);//中文下的空格,且只能用explode不能用substr

$auth=$auths[0];

$jump_url = WAPS_URL."/index.html";

$key = "SDGOYIPN53487216";//密钥

$username = decrypt($auth,$key);//还是他妈原生态的好用

$username = json_decode($username);//在加密之前必须json_encode一下防止解密出错

if($username != "" && $username !=null){//url解码后

$query_arr[‘member_name‘] = $username;

$m = Model("member");

$mem_info = $m->where($query_arr)->find();

if($mem_info!=null){//判断用户是否存在,存在就模拟登录

$token = $this->_get_token($mem_info[‘member_id‘], $mem_info[‘member_name‘], "wap");

if($token) {//用js给username和key赋值

$str = "<script>

function addcookie(name, value, expireHours) {

var cookieString = name + ‘=‘ + escape(value) + ‘; path=/‘;

// 判断是否设置过期时间

if (expireHours > 0) {

var date = new Date();

date.setTime(date.getTime + expireHours * 3600 * 1000);

cookieString = cookieString + ‘; expire=‘ + date.toGMTString();

}

document.cookie = cookieString;

if (!document.cookie || document.cookie.length == 0) {

// Cookie 不好使

localStorage.setItem(name, value);

// TODO 对时间或者说有效期做一些处理

}

}

</script>";

$str .= "<script>

addcookie(‘username‘,‘{$mem_info[‘member_name‘]}‘);

addcookie(‘key‘,‘{$token}‘);

addcookie(‘isannoy‘,‘true‘);

alert(‘登录成功‘);

</script>";

echo $str;

echo  "<script>location.href=‘{$jump_url}‘;</script>";

} else {

echo  "<script>alert(‘对不起,尝试登录失败请重新操作!‘);location.href=‘{$jump_url}‘;</script>";

}

}else{

echo  "<script>alert(‘对不起,用户不存在请联系管理员确认!‘);location.href=‘{$jump_url}‘;</script>";

}

}else{//参数有问题,跳主页

echo  "<script>alert(‘对不起,参数不正确请确认!‘);location.href=‘{$jump_url}‘;</script>";

}

}

}

登陆页前台:

<?php defined(‘IN_B2B2C‘) or exit(‘Access Invalid!‘);?>

<style type="text/css">

.public-top-layout, .head-search-bar, .head-user-menu, .public-nav-layout, .nch-breadcrumb-layout, #faq {

display: none !important;

}

.wrapper {

width: 1000px;

}

#footer {

border-top: none!important;

padding-top: 30px;

}

</style>

<div class="nc-login-layout">

<div class="left-pic"><img src=\‘#\‘" echo $output[‘lpic‘];?>"  border="0"></div>

<div class="nc-login">

<div class="nc-login-title">

<h3><?php echo $lang[‘login_index_user_login‘];?></h3>

</div>

<div class="nc-login-content" id="demo-form-site">

<form id="login_form" method="post" class="bg">

<?php Security::getToken();?>

<input type="hidden" name="form_submit" value="ok" />

<input name="nchash" type="hidden" value="<?php echo getNchash();?>" />

<dl>

<dt><?php echo $lang[‘login_index_username‘];?></dt>

<dd>

<input type="text" class="text" autocomplete="off"  name="user_name" id="user_name">

<label></label>

</dd>

</dl>

<dl>

<dt><?php echo $lang[‘login_index_password‘];?> </dt>

<dd>

<input type="password" class="text" name="password" autocomplete="off"  id="password">

<label></label>

</dd>

</dl>

<?php if(C(‘captcha_status_login‘) == ‘1‘) { ?>

<dl>

<dt><?php echo $lang[‘login_index_checkcode‘];?></dt>

<dd>

<input type="text" name="captcha" class="text w50 fl" id="captcha" maxlength="4" size="10" />

<img src=\‘#\‘" echo SHOP_SITE_URL?>/index.php?act=seccode&op=makecode&nchash=<?php echo getNchash();?>" name="codeimage" border="0" id="codeimage" class="fl ml5"> <a href="javascript:void(0)" class="ml5" onclick="javascript:document.getElementById(‘codeimage‘).src=\‘#\‘" echo SHOP_SITE_URL?>/index.php?act=seccode&op=makecode&nchash=<?php echo getNchash();?>&t=‘ + Math.random();"><?php echo $lang[‘login_index_change_checkcode‘];?></a>

<label></label>

</dd>

</dl>

<?php } ?>

<dl>

<dt>&nbsp;</dt>

<dd>

<input type="button" class="submit" value="<?php echo $lang[‘login_index_login‘];?>" name="Submit">

<a class="forget" href="index.php?act=login&op=forget_password"><?php echo $lang[‘login_index_forget_password‘];?></a>

<input type="hidden" value="<?php echo $_GET[‘ref_url‘]?>" name="ref_url">

</dd>

</dl>

</form>

<?php if($output[‘ref_url_ret‘]) {?>

<dl class="mt10 mb10">

<dt>&nbsp;</dt>

<dd><?php echo $lang[‘login_index_regist_now_1‘];?><a title="" href="index.php?act=login&op=register&ref_url=<?php echo urlencode($_GET[‘ref_url‘]);?>" class="register"><?php echo $lang[‘login_index_regist_now_2‘];?></a></dd>

</dl>

<?php } else {?>

<dl class="mt10 mb10">

<dt>&nbsp;</dt>

<dd><?php echo $lang[‘login_index_regist_now_1‘];?><a title="" href="index.php?act=login&op=register&ref_url=<?php echo urlencode($output[‘ref_url‘]);?>" class="register"><?php echo $lang[‘login_index_regist_now_2‘];?></a></dd>

</dl>

<?php }?>

<?php if ($GLOBALS[‘setting_config‘][‘qq_isuse‘] == 1 || $GLOBALS[‘setting_config‘][‘sina_isuse‘] == 1){?>

<dl>

<dd class="nc-login-other">

<p><?php echo $lang[‘nc_otherlogintip‘];?></p>

<?php if ($GLOBALS[‘setting_config‘][‘qq_isuse‘] == 1){?>

<a href="<?php echo SHOP_SITE_URL;?>/api.php?act=toqq" title="QQ" class="qq">&nbsp;</a>

<?php } ?>

<?php if ($GLOBALS[‘setting_config‘][‘sina_isuse‘] == 1){?>

<a href="<?php echo SHOP_SITE_URL;?>/api.php?act=tosina" title="<?php echo $lang[‘nc_otherlogintip_sina‘]; ?>" class="sina">&nbsp;</a>

<?php } ?>

</dd>

</dl>

<?php } ?>

</div>

<div class="nc-login-bottom"></div>

</div>

</div>

<script>

$(document).ready(function(){

$(‘input[name="Submit"]‘).click(function(){

if($("#login_form").valid()){

$("#login_form").submit();

} else{

document.getElementById(‘codeimage‘).src=\‘#\‘" echo SHOP_SITE_URL?>/index.php?act=seccode&op=makecode&nchash=<?php echo getNchash();?>&t=‘ + Math.random();

}

});

$("#login_form").validate({

errorPlacement: function(error, element){

var error_td = element.parent(‘dd‘);

error_td.find(‘label‘).hide();

error_td.append(error);

},

rules: {

user_name: "required",

password: "required"

<?php if(C(‘captcha_status_login‘) == ‘1‘) { ?>

,captcha : {

required : true,

minlength: 4,

remote   : {

url : ‘<?php echo SHOP_SITE_URL?>/index.php?act=seccode&op=check&nchash=<?php echo getNchash();?>‘,

type: ‘get‘,

data:{

captcha : function(){

return $(‘#captcha‘).val();

}

}

}

}

<?php } ?>

},

messages: {

user_name: "<?php echo $lang[‘login_index_input_username‘];?>",

password: "<?php echo $lang[‘login_index_input_password‘];?>"

<?php if(C(‘captcha_status_login‘) == ‘1‘) { ?>

,captcha : {

required : ‘<?php echo $lang[‘login_index_input_checkcode‘];?>‘,

minlength: ‘<?php echo $lang[‘login_index_input_checkcode‘];?>‘,

remote : ‘<?php echo $lang[‘login_index_wrong_checkcode‘];?>‘

}

<?php } ?>

}

});

});

</script>

前台调用了seccode.php 中check方法

header("Content-type:text/html;charset=utf-8");

只需要在seccode.php文件中加入这句话就可以了

seccode.php

<?php

/**

* 验证码

*

*/

defined(‘IN_B2B2C‘) or exit(‘Access Invalid!‘);

header("Content-type:text/html;charset=utf-8");

class seccodeControl{

public function __construct(){

}

/**

* 产生验证码

*

*/

public function makecodeOp(){

$refererhost = parse_url($_SERVER[‘HTTP_REFERER‘]);

$refererhost[‘host‘] .= !empty($refererhost[‘port‘]) ? (‘:‘.$refererhost[‘port‘]) : ‘‘;

$seccode = makeSeccode($_GET[‘nchash‘]);

@header("Expires: -1");

@header("Cache-Control: no-store, private, post-check=0, pre-check=0, max-age=0", FALSE);

@header("Pragma: no-cache");

$code = new seccode();

$code->code = $seccode;

$code->width = 90;

$code->height = 26;

$code->background = 1;

$code->adulterate = 1;

$code->scatter = ‘‘;

$code->color = 1;

$code->size = 0;

$code->shadow = 1;

$code->animator = 0;

$code->datapath =  BASE_DATA_PATH.‘/resource/seccode/‘;

$code->display();

}

/**

* AJAX验证

*

*/

public function checkOp(){

if (checkSeccode($_GET[‘nchash‘],$_GET[‘captcha‘])){

exit(‘true‘);

}else{

exit(‘false‘);

}

}

}

?>

时间: 2024-10-25 05:13:35

登陆页老是提示验证码错误,validate验证控件IE下用remote方法明明返回true 但是还是报错,提示验证码错误的相关文章

ASP.NET验证控件总结

ASP.NET支持以下验证控件 RequiredFieldValidator(非空验证) 确保用户没有跳过输入控件.RequiredFieldValidator控件可以与文本框绑定在一起,以便强制用户对文本框进行输入.使用选择控件,例如,对于下拉框控件和单选按钮,RequiredFieldValidator都可确保用户选择使用,而不必使用指定的默认值.RequiredFieldValidator不检查数据的有效性,只是保证一些数据的输入或者被选择. RangeValidator(范围验证) 确保

ASP.NET_验证控件(class0620)

为什么使用验证控件 当需要让用户输入数据时,用户有可能输入不符合我们程序逻辑要求的信息,所以我们要对输入进行验证. 客户端验证(用户体验,减少服务器端压力) 服务器端验证(防止恶意攻击,客户端js很容易就可以被绕过) 必须要对用户输入的数据进行合法性校验,这些校验逻辑很多是重复的,比如字段不能为空.必须为日期格式.数字不能大于100等,而且要同时在客户端和服务器端校验. 验证控件 ASP.Net提供了如下的控件: RequiredFieldValidator:字段必填: RangeValidat

jquery 的前端验证控件应用(form www.sysoft.cc)

jquery validate验证控件真是挺 好用,功能不错,找好文档,使用也较方便呵,不错. <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Index</title> <script src="../../Scripts/jquery-1.4.1.js" type="text/ja

jQuery验证控件validate使用

一导入js库 <script src="../js/jquery.js" type="text/javascript"></script> <script src="../js/jquery.validate.js" type="text/javascript"></script> 二.默认校验规则 (1)required:true                必输字段 (2)

验证码和验证控件

一般处理程序:ashx,接受请求,处理后输出,无页面,其他同aspx中的.cs 验证码: <%@ WebHandler Language="C#" Class="show" %> using System; using System.Web; using System.Drawing; using System.Web.SessionState;//IRequiresSessionState的命名空间 public class show : IHttpH

VS2013验证控件出现 WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResour......的错误解决方案

错误如下: 解决方案如下: 方法一: 在webconfig中找到 <appSettings> <addkey="aspnet:UseTaskFriendlySynchronizationContext"value="true" /> <addkey="ValidationSettings:UnobtrusiveValidationMode"value="WebForms" /> </a

B/S的验证控件

验证控件 首先设置一下框架,设置为.net framework 4.0,在4.5下貌似会报错,设置方法为项目上右键/属性页/找到左侧菜单栏里的生成/将框架版本改为4.0. 一.非空验证:RequiredFieldValidator ErrorMessage:设置错误信息 ControlToValidate:要验证哪个控件 Display:Static--不显示也占空间.Dynamic--不显示不占空间 InitialValue:初始值,为空就是验证非空,为某个字符串则为验证不能为该字符串. Te

【转载】C#验证控件的使用方法(RegularExpressionValidator)的使用

ControlToValidate="要验证的控件名称" ValidationExpression="验证规则" ErrorMessage="所要显示的错误信息" 在使用RegularExpressionValidator验证控件时的验证功能及其验证表达式介绍如下: 只能输入数字:“^[0-9]*$” 只能输入n位的数字:“^\d{n}$” 只能输入至少n位数字:“^\d{n,}$” 只能输入m-n位的数字:“^\d{m,n}$” 只能输入零和非

ASP.NET的验证控件

在做机房收费系统的时候,为了验证文本框是否为空.用户是否存在.输入的是否合法等等,我们都要单独写代码,学习了ASP.NET的验证控件,省了很多事. ASP.NET可以轻松实现对用户输入的验证.让我们好好回顾一下ASP.NET公有的六种验证控件. 1.基本验证控件: (1)RequiredFieldValidator:限制空字段(必须字段验证) 用于检查是否有输入值 例子:比如登陆时,需要验证输入的用户名和密码是否为空 <asp:RequiredFieldValidator ID="Requ