登陆页后台: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('codep_w_picpath').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="<?php 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="<?php echo SHOP_SITE_URL?>/index.php?act=seccode&op=makecode&nchash=<?php echo getNchash();?>" name="codep_w_picpath" border="0" id="codep_w_picpath" class="fl ml5"> <a href="javascript:void(0)" class="ml5" οnclick="javascript:document.getElementById('codep_w_picpath').src='<?php 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('codep_w_picpath').src='<?php 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');

}

}

}

?>

转载于:https://blog.51cto.com/5361806/1713091

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

  1. 弹出框页面中使用jquery.validate验证控件

    弹出框页面中使用jquery.validate验证控件有几个问题需要解决: 1,弹出框的提交事件完成后如何关闭弹出框页面? 2,提交不成功如何返回当前页? 3,如果知道验证事件成功? 之前笔者都是JS ...

  2. WebForm常见错误之验证控件报错

    目录 [问题描述] [原因分析:] [解决方案] 方案1: 方案2(推荐): 方案3: 方案4: [问题描述] 当我们在开发过程中,有时候会遇到一些莫名其名的错误. 很多小伙伴看到这个问题,当时就蒙了 ...

  3. 【ASP.NET】基础补习之验证控件

    在做Web应用程序的时候,因为用户有可能输入各式各样的信息,经常需要大量的数据验证,如果交给服务器去验证的话,无疑会增加服务器的压力,而且也容易造成程序的异常.甚至导致网站出现一些安全问题.因此我们在 ...

  4. 风影ASP.NET基础教学 4 验证控件

    前言 无论什么应用软件系统,它最本质的功能和用途就是处理数据.这样,数据的安全性就成为了系统设计里面非常重要的话题,提交一些不安全的数据(如SQL注入.数据类型或者数据范围不合适等)常常会导致系统计算 ...

  5. ASP.NET对验证控件的一些整理(一)

    这段时间可能就比较清闲了,就过来总结一下这段时间的收获! 最近做的一个项目里面验证控件用的比较多,觉得比JS的验证好用多了,而且用户体验效果也好! 常用的几个验证控件 Validation 服务器控件 ...

  6. win10应用商店报错提示0x80072EE7怎么解决?(亲测,一次性解决)

    win10应用商店报错提示0x80072EE7怎么解决 前言 不少用户在win10系统使用应用商店时出现打不开,并提示错误代码0x80072ee7,那么应用商店0x80072ee7错误问题要怎么解决呢 ...

  7. [jQuery]使用jQuery.Validate进行客户端验证(高级篇-下)——不使用微软验证控件的理由...

    2019独角兽企业重金招聘Python工程师标准>>> 引用源:http://www.cnblogs.com/kyo-yo/archive/2010/07/06/Use-jQuery ...

  8. [jQuery]使用jQuery.Validate进行客户端验证(高级篇-上)——不使用微软验证控件的理由...

    在上一篇使用jQuery.Validate进行客户端验证(中级篇-下)中我介绍了jQuery.Validate在日常使用的过程中会遇到哪些问题及解决办法,今天的高级篇则主要是对jQuery.Valid ...

  9. ASP.NET验证控件合集 含代码演示

    文章目录 1. 窗体验证概述 2. ASP.NET中的数据验证控件 2.1. 空值验证 RequiredFieldValidator控件 2.2. 一致性验证 CompareValidator控件 2 ...

最新文章

  1. Rouche Theorem(Stein复分析)
  2. R语言ggplot2可视化:可视化堆叠的直方图、添加每个分组的每个bin的计数标签、在堆叠直方图的bin中的每个分组部分添加数值标签
  3. this指向总结(无栗子)
  4. php appl_physical_path,PHP的一些面试题
  5. 112页数学知识整理!机器学习-数学基础回顾.pptx
  6. 关于MySQL出现锁等待lock wait timeout exceeded; try restarting transaction 的解决方案
  7. Python django-restframework 前后端分离实现在线教育课程平台
  8. 什么是 SAP UI5 的 Component-preload.js, 什么是Minification和Ugification
  9. 使用它tshark分析pcap的例子以及scapy下载地址
  10. N - 嘤嘤嘤 (并查集+枚举)
  11. 图书管理系统的5W1H
  12. Android 标题栏(2)
  13. cv::createTrackbar cv::threshold
  14. 突然有点想和你唠嗑了~
  15. 检测邮箱和手机号是否正确的正则
  16. 震波——动态点分治+线段树
  17. 读书笔记—《雷达信号处理基础》第一章 雷达系统与信号处理概述
  18. You can be happy no matter what.
  19. 厚积薄发系列(C语言资料)
  20. Java生成和解析二维码

热门文章

  1. keil 查看 stm32 io波形_这样学习STM32单片机,从菜鸟到牛人很简单!
  2. 社区生鲜领军者钱大妈携手神策数据,加速线上线下精准导流促增长
  3. 神策用户画像 2 大功能:千人千面,一人千面,一次给你
  4. 三家逐鹿,私有化部署能帮神策数据杀出重围么?| 公司调研
  5. 人工智能听了很多遍,都应用在哪些领域了你知道吗?
  6. 使用lld自动发现监控多实例redis
  7. 37条常用Linux Shell命令组合
  8. 渴望尽快能找到工作,开始上班
  9. 强大的PHP防SQL注入类,可以过滤敏感参数
  10. libmemcached安装报错