简单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验证)的更多相关文章

  1. 问答项目---登陆账号密码登陆做AJAX异步校验

    异步验证管理员帐号方法: /* 异步验证管理员帐号 */ public function checkAccount(){ if(!IS_AJAX){echo "页面不存在";die ...

  2. 问答项目---用户注册的那些事儿(JS验证)

    做注册的时候,由于每一个页面都有都要可以注册,可以把注册方法写到一个公用的方法里去,其他方法继承这个方法: 简单注册JS示例: <script type='text/javascript'> ...

  3. Ext.NET加入自定义验证JS函数

    ExtJS验证很方便,在使用FormPanel的时候,我们可以很方便的进行验证.比如设置必填项.正则.字段类型等等.比如如下所示: 上面的验证是这么写的: 1 2 3 <Listeners> ...

  4. jquery.validate.js表单验证

    一.用前必备官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-validation/ API: http://jquery.bassist ...

  5. jquery validate.js表单验证的基本用法入门

    这里转载一篇前辈写的文章,在我自己的理解上修改了一下,仅作记录. 先贴一个国内某大公司的代码: 复制代码 代码如下: <script type="text/javascript&quo ...

  6. 【转】jquery.validate.js表单验证

    一.用前必备官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-validation/ API: http://jquery.bassist ...

  7. [转]jquery.validate.js表单验证

    原文地址:https://www.cnblogs.com/si-shaohua/p/3780321.html 一.用前必备官方网站:http://bassistance.de/jquery-plugi ...

  8. 转:jquery validate.js表单验证

    这里转载一篇前辈写的文章,在我自己的理解上修改了一下,仅作记录. 先贴一个国内某大公司的代码: 复制代码代码如下: <script type="text/javascript" ...

  9. 看完你也能独立负责项目!产品经理做APP从头到尾的所有工作流程详解!

    (一)项目启动前 从事产品的工作一年多,但自己一直苦于这样或者那样的困惑,很多人想要从事产品,或者老板自己创业要亲自承担产品一职,但他们对产品这个岗位的认识却不明晰,有的以为是纯粹的画原型,有的是以为 ...

随机推荐

  1. C# VS本地Sqlserver 操作笔记

    1.如何连接本地数据库 -- string Info = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirecto ...

  2. QT 交叉编译工具选择

    使用QT交叉编译,生成的都是x86的可执行文件.Zoro告诉我交叉工具配置错了. 参考链接: http://www.cnblogs.com/zengjfgit/p/4744507.html linux ...

  3. Resource接口,及资源

    Resource介绍 编码的时候,除了代码本身,我们还需要对外部的资源进行处理.例如:URL资源.URI资源.File资源.ClassPath相关资源.服务器相关资源(VFS等)等等. 而这些资源的处 ...

  4. C++多线程环境下注意共享资源的释放顺序

    比如我现在写一个多线程下载程序,包含DownloadTask.HttpDownload两个类. class DownloadTask { //省略n行代码 public: int m_threads; ...

  5. myslq的索引类型为MyISAM和BDB的表:复合索引下的自增长

    本文源自:http://www.himigame.com/mysql/781.html 3.6.9. 使用AUTO_INCREMENT 可以通过AUTO_INCREMENT属性为新的行产生唯一的标识: ...

  6. htaccess正则规则学习笔记整理

    # —— 位于行首时表示注释. [F] —— Forbidden(禁止): 命令服务器返回 403 Forbidden错误给用户浏览器 [L] —— Last rule(最后一条规则): 告诉服务器在 ...

  7. MyBatis-使用mybatis-generator-core.jar生成POJO和Mapper文件

    Demo: http://pan.baidu.com/s/1pLeyVv9 1.pom.xml <dependencies> <!-- 用于生成日志 --> <depen ...

  8. android SDK manager 快速更新【转】

  9. go-study

    package (包) 一个目录下面所有的.go文件的包名必须相同. 包名一般和目录名相同(是约定, 不是强制), 包名都小写 main包是一个特殊的包名, 在main包中, 必须包含func mai ...

  10. Java 应用程序设计规范

    1.能在程序中取的产生就从程序中取.不用客户输入(减少客户输入). 比如客户号 信息 等. 2.如果有参数输入尽可能减少参数输入的个数(4个->0个): 3.验证入参(尽可能的实现输入参数的正确 ...