问答项目---登陆也要做验证!(JS和PHP验证)
简单JS示例:
var login = $( 'form[name=login]' );
login.submit( function () {
if (validate.loginAccount && validate.loginPwd) {
return true;
}
$( 'input[name=account]', login ).trigger('blur');
$( 'input[name=pwd]', login ).trigger('blur');
return false;
} );
$( 'input[name=account]', login ).blur( function () {
var account = $( this ).val();
var span = $( '#login-msg' );
if (account == '') {
span.html( '请填入帐号' );
validate.loginAccount = false;
return;
}
} );
$( 'input[name=pwd]', login ).blur( function () {
var account = $( 'input[name=account]', login ).val();
var pwd = $( this ).val();
var span = $( '#login-msg' );
if (pwd == '') {
span.html( '请填写密码' );
validate.loginPwd = false;
return;
}
if (account == '') {
span.html( '请填入帐号' );
validate.loginAccount = false;
return;
}
var data = {
account : account,
password : pwd
};
$.post(CONTROL + 'checkLogin', data, function (status) {
if (status) {
span.html( '' );
validate.loginAccount = true;
validate.loginPwd = true;
} else {
span.html( '帐号或密码不正确' );
validate.loginAccount = false;
validate.loginPwd = false;
}
}, 'json');
} );
异步验证:
//异步验证登录帐号与密码
Public function checkLogin () {
if (!$this->isAjax()) halt('页面不存在'); $account = $this->_post('account');
$where = array('account' => $account); $pwd = M('user')->where($where)->getField('password');
if (!$pwd || $pwd != $this->_post('password', 'md5')) {
echo 0;
} else {
echo 1;
}
}
登录表单处理:
//登录表单处理
Public function login () {
if (!$this->isPost()) halt('页面不存在'); $db = M('user');
$where = array('account' => $this->_post('account'));
$field = array('id', 'username', 'password', 'logintime', 'lock');
$user = $db->where($where)->field($field)->find(); if (!$user || $user['password'] != $this->_post('pwd', 'md5')) {
$this->error('帐号或密码错误');
} if ($user['lock']) {
$this->error('帐号被锁定');
} if (isset($_POST['auto'])) {
$value = $user['id'] . '|' . get_client_ip() . '|' . $user['username'];
$value = encrytion($value, 1);
@setcookie('auto', $value, C('AUTO_LOGIN_LIFETIME'), '/');
} //每天登录增加经验
$today = strtotime(date('Y-m-d'));
$where = array('id' => $user['id']);
if ($user['logintime'] < $today) {
$db->where($where)->setInc('exp', C('LV_LOGIN'));
} $db->where($where)->save(array('logintime' => time())); session('uid', $user['id']);
session('username', $user['username']);
redirect($_SERVER['HTTP_REFERER']);
}
问答项目---登陆也要做验证!(JS和PHP验证)的更多相关文章
- 问答项目---登陆账号密码登陆做AJAX异步校验
异步验证管理员帐号方法: /* 异步验证管理员帐号 */ public function checkAccount(){ if(!IS_AJAX){echo "页面不存在";die ...
- 问答项目---用户注册的那些事儿(JS验证)
做注册的时候,由于每一个页面都有都要可以注册,可以把注册方法写到一个公用的方法里去,其他方法继承这个方法: 简单注册JS示例: <script type='text/javascript'> ...
- Ext.NET加入自定义验证JS函数
ExtJS验证很方便,在使用FormPanel的时候,我们可以很方便的进行验证.比如设置必填项.正则.字段类型等等.比如如下所示: 上面的验证是这么写的: 1 2 3 <Listeners> ...
- jquery.validate.js表单验证
一.用前必备官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-validation/ API: http://jquery.bassist ...
- jquery validate.js表单验证的基本用法入门
这里转载一篇前辈写的文章,在我自己的理解上修改了一下,仅作记录. 先贴一个国内某大公司的代码: 复制代码 代码如下: <script type="text/javascript&quo ...
- 【转】jquery.validate.js表单验证
一.用前必备官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-validation/ API: http://jquery.bassist ...
- [转]jquery.validate.js表单验证
原文地址:https://www.cnblogs.com/si-shaohua/p/3780321.html 一.用前必备官方网站:http://bassistance.de/jquery-plugi ...
- 转:jquery validate.js表单验证
这里转载一篇前辈写的文章,在我自己的理解上修改了一下,仅作记录. 先贴一个国内某大公司的代码: 复制代码代码如下: <script type="text/javascript" ...
- 看完你也能独立负责项目!产品经理做APP从头到尾的所有工作流程详解!
(一)项目启动前 从事产品的工作一年多,但自己一直苦于这样或者那样的困惑,很多人想要从事产品,或者老板自己创业要亲自承担产品一职,但他们对产品这个岗位的认识却不明晰,有的以为是纯粹的画原型,有的是以为 ...
随机推荐
- HTML坦克大战学习01
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <t ...
- 关于datatable导出execl
导出主要考虑响应流的问题 curContext.Response.ContentType = "application/vnd.ms-excel"; curContext.Resp ...
- SparkR:数据科学家的新利器
摘要:R是数据科学家中最流行的编程语言和环境之一,在Spark中加入对R的支持是社区中较受关注的话题.作为增强Spark对数据科学家群体吸引力的最新举措,最近发布的Spark 1.4版本在现有的Sca ...
- jQuery Masonry-让你的网页更自然的强大的动态不规则布局插件!
Masonry是 一款非常强大的jQuery动态网格布局插件,可以帮助开发人员快速开发类似剪贴画的界面效果.和CSS中float的效果不太一样的地方在 于,float先水平排列,然后再垂直排列,使用M ...
- 《FPGA全程进阶---实战演练》第三章之PCB设计之去耦电容
1.关于去耦电容为何需要就近摆放? 大多数资料有提到过,去耦电容就近放置,是从减小回路电感的角度去谈及摆放问题,其实还有一个原则就是去耦半径的问题,如果电容离着芯片位置较远,超过去耦半径,会起不到去耦 ...
- Spring细粒度控制扫描Bean
接Spring 依赖注入(DI)的注解 <context:component-scan base-package="" resource-pattern="**/* ...
- (转)分析kernel的initcall函数
分析kernel的initcall函数 来源: ChinaUnix博客 日期: 2008.07.19 21:24 (共有条评论) 我要评论 分析kernel的initcall函数Autho ...
- CentOS7忘记root密码的解决方法
开机启动centos 7.0,看到如下画面,选择下图选单,按"e"键 在下图linux16行中,将ro这两个字母修改为rw init=/sysroot/bin/sh 修改结果如下图 ...
- jquery-修改、回退结果集
1.end()方法 使用end方法得到上一个结果集 2.addBack()方法 使用addBack()可以得到原结果集与当前结果的合集,也可传入选择器来过滤原结果集
- Win10開始菜单打不开
一.前言 自从用Win10之后(附上<我的Win10之旅>).用清理软件.总是深度清理,导致rt问题. 每次百度都是没用的解决方法: 今天,再一次清理(Wise Care 365 注冊表深 ...