简单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. 为iframe添加鼠标事件

    1.关于iframe标签 使用iframe元素会创建包含另外一个文档的内联框架(即行内框架).所以我们可以使用iframe标签,在一个页面嵌入另一个页面.通过指定iframe的src为另一个页面的路径 ...

  2. 【转】如何搭建IPv6测试你的APP

    IPv6的简介 IPv4 和 IPv6的区别就是 IP 地址前者是 .(dot)分割,后者是以 :(冒号)分割的(更多详细信息自行搜索). PS:在使用 IPv6 的热点时候,记得手机开 飞行模式 哦 ...

  3. VS2013环境生成和调用DLL动态链接库

    http://blog.csdn.net/u010273652/article/details/25514577 创建动态库方法: 创建动态库是生成 .dll .lib 两个个文件 文件 -> ...

  4. 第二百九十一节,RabbitMQ多设备消息队列-安装与简介

    RabbitMQ多设备消息队列-安装与简介 RabbitMQ简介 解释RabbitMQ,就不得不提到AMQP(Advanced Message Queuing Protocol)协议. AMQP协议是 ...

  5. js上传本地图片遇到的问题

    1.改变页面文件上传默认的样式 <input type="text" size="20" id="upfile" style=&quo ...

  6. Java Error: java.lang.UnsupportedClassVersionError: ...bad major version at offset=6

    问题分析 报这个错误是指你的jar包或者class 的被编译的jdk版本比当前runtime的jdk版本高. 首先,确定你当前的运行版本: Java代码   Java -version java ve ...

  7. c++ mktime()

    今天联系写一个日历的程序,需要算出月份中的第一天是星期几,用到了mktime()这个函数,感觉这个函数挺有用的,分享给大家. 原型:time_t mktime(struct tm *) 其中的tm结构 ...

  8. 字符串池化 python

    前言 在 Python 中经常通过内存池化技术来提高其性能,那么问题来了,在什么情况下会池化呢? 让我们通过几个例子进行一下理解一下. 预备知识 在查看例子之前,首先要提 python 中的一个函数 ...

  9. ADO.net方法

    using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; usin ...

  10. Linux buffer/cache异同

    buffers与cached 1).异同点 在Linux 操作系统中,当应用程序需要读取文件中的数据时,操作系统先分配一些内存,将数据从磁盘读入到这些内存中,然后再将数据分发给应用程序:当需要往文件中 ...