个人博客—用户登陆&登出

点击头部的登陆按钮,弹出用户登录dialog

用户登录dialog

输入用户名和密码会验证是否符合要求,不符合则在上面提示错误信息,且将对应的表单元素边框和必填标志变成红色;每增加一条错误信息相应增加登录表单高度,避免出现滚动条。

错误信息

用户名和密码输入符合规则后,当密码输入框失去焦点时向后台验证用户名和密码是否正确;验证正确后方可登录。

用户名或密码不正确

用户名和密码正确可以登录

点击登录按钮,向后台发送登录请求;发送请求前弹出数据交互中dialog,发送成功后弹出登陆成功dialog;

数据交互中

登陆成功

登陆成功后,设置登陆cookie,如果选择了有效期则登陆cookie有效期设置为一周,否则设置为默认有效期,头部显示用户名和登出按钮;

登陆成功显示用户名和登出

点击登出按钮则退出登录,删除登陆cookie,显示注册和登陆按钮

html部分

帐号:

*

密码:

*

登录后有效期一周

js部分

// 头部登录按钮点击弹出登陆表单

$('#header .loginbtn').on("click",function () {

$('#login').dialog('open');

});

// 登录表单

$('#login').dialog({

autoOpen : false,

modal : true,

resizable : false,

width : 320,

height : 240,

buttons : {

'登录' : function () {

$(this).submit();

}

}

}).validate({ //登录表单验证

// 登录表单提交处理函数,类似注册表单

submitHandler : function (form) {

login_submit_fuc(form);

},

showErrors : function (errorMap, errorList) {

var errors = this.numberOfInvalids();

if (errors > 0) {

$('#login').dialog('option', 'height', errors * 20 + 240);

} else {

$('#login').dialog('option', 'height', 240);

}

this.defaultShowErrors();

},

highlight : function (element, errorClass) {

$(element).css('border', '1px solid red');

$(element).parent().find('span').html('*').removeClass('succ');

},

unhighlight : function (element, errorClass) {

$(element).css('border', '1px solid #ccc');

$(element).parent().find('span').html(' ').addClass('succ');

},

errorLabelContainer : 'ol.login_error',

wrapper : 'li',

rules : {

login_user : {

required : true,

minlength : 2,

},

login_pass : {

required : true,

minlength : 6,

remote : {

url : 'php/login.php',

type : 'POST',

data : {

login_user : function () {

return $('#login_user').val();

},

},

},

},

},

messages : {

login_user : {

required : '帐号不得为空!',

minlength : jQuery.format('帐号不得小于{0}位!'),

},

login_pass : {

required : '密码不得为空!',

minlength : jQuery.format('密码不得小于{0}位!'),

remote : '帐号或密码不正确!',

}

}

});

function login_submit_fuc(form){

$(form).ajaxSubmit({

url : 'php/login.php',

type : 'POST',

beforeSubmit : function (formData, jqForm, options) {

$('#loading').dialog('open');

$('#login').dialog('widget').find('button').eq(1).button('disable');

},

success : function (responseText, statusText) {

if (responseText) {

$('#login').dialog('widget').find('button').eq(1).button('enable');

$('#loading').css('background', 'url(img/success.gif) no-repeat 20px center').html('登录成功...');

if ($('#expires').is(':checked')) {

$.cookie('user', $('#login_user').val(), {

expires : 7,

});

} else {

$.cookie('user', $('#login_user').val());

}

setTimeout(function () {

$('#loading').dialog('close');

$('#login').dialog('close');

$('#login').resetForm();

$('#login span.star').html('*').removeClass('succ');

$('#loading').css('background', 'url(img/loading.gif) no-repeat 20px center').html('数据交互中...');

$('#header .member, #header .logout').show();

$('#header .regbtn, #header .loginbtn').hide();

$('#header .member').html($.cookie('user'));

}, 1000);

}

},

});

}

php部分

require 'config.php';

$_pass = sha1($_POST['login_pass']);

$query = mysql_query("SELECT user,pass FROM user WHERE user='{$_POST['login_user']}' AND pass='{$_pass}'") or die('SQL 错误!');

if (mysql_fetch_array($query, MYSQL_ASSOC)) {

echo 'true';

} else {

echo 'false';

}

mysql_close();

?>

代码在Github:个人博客

php 登录 登出,个人博客—用户登陆登出相关推荐

  1. python爬虫抢演唱会_Python爬虫爬了七天七夜终于爬出了博客园粉丝数排行榜

    Python爬虫爬了七天七夜终于爬出了博客园粉丝数排行榜 [Python爬虫]爬了七天七夜,终于爬出了博客园粉丝数排行榜! 爬虫数据采集接单,大小不限,欢迎各位科研教师,学生,企业相关人员咨询,QQ: ...

  2. python爬虫难度排行_【Python爬虫】爬了七天七夜,终于爬出了博客园粉丝数排行榜!...

    [Python爬虫]爬了七天七夜,终于爬出了博客园粉丝数排行榜! 文章发出不到30分钟就被首页下架了,默哀-- 起因 为了督促自己更加积极地写博客,我希望有一个排名系统能让我看到自己的进步.但是博客园 ...

  3. 如何更换个人CSDN博客 用户头像

    前言 首先吐槽一下:小编最近想更换个人CSDN博客的头像, 发现PC端网页上怎么搞都不成功.问了同事,竟然也遇到同样的问题, 根据小编的性格,这是不能容忍的,一个CSDN 技术网站,居然头像都不给换, ...

  4. 技术人员和非技术人员如何写出优质博客?-涵子的个人想法

    大家好,我是涵子.今天,我们来沉重的聊聊一个大家都很关心的一个问题:技术人员和非技术人员如何写出优质博客? 目录 前言 初写博客,仰望大师 中段时期,无粉无赞 优质博客,涨粉涨赞 优质内容从何而来 优 ...

  5. 【Python爬虫】爬了七天七夜,终于爬出了博客园粉丝数排行榜!

    文章发出不到30分钟就被首页下架了,默哀-- 起因 为了督促自己更加积极地写博客,我希望有一个排名系统能让我看到自己的进步.但是博客园对用户的排名体系相对是比较少的,主要是推荐博客排行和积分排行:但它 ...

  6. 网站使用第三方登录--用新浪博客登录

    1.引入指定js: <script src="http://tjs.sjs.sinajs.cn/open/api/js/wb.js?appkey=your appkey" t ...

  7. 51CTO博客用户体验

    偶尔看看以前的东西,才发现原来我也在51CTO上飘过一下子的,用户名一如既往的是****,突然就想先在上面安个家,把所学的可用性东西整理一下,因为可用性也算是软件测试一种方法,算是IT界的. 51CT ...

  8. 大数据系列博客之 --- 深入简出 Shell 脚本语言(提升篇)

    首先声明,此系列shell系列博客分为四篇发布,分别是: 基础篇:https://www.cnblogs.com/lsy131479/p/9914747.html 提升篇:https://www.cn ...

  9. 2010年度中国十大杰出IT博客 评审

    很荣幸这次担任"2010年度十大杰出IT博客" (http://2010blog.51cto.com/) 的评委.因为这次大赛,和51CTO的工作人员有更紧密的联系,并且参观了51 ...

最新文章

  1. springboot 成员变量_springboot系列之04-提高开发效率必备工具lombok
  2. Hyperledger Fabric 智能合约实战 (0) 整体步骤
  3. 全球及中国特殊教育行业十四五趋势展望与发展战略建议报告2022版
  4. MarkDown写ppt
  5. Facade与Mediator模式的区别
  6. python asyncio理解_深入理解asyncio(二)
  7. 不要62(HDU-2089)
  8. python必备基础代码-机器学习算法基础(使用Python代码)
  9. 团队组成五个基本要素_如何进行团队建设和团队沟通
  10. javaweb java代码写在哪里_写了那么多年 Java 代码,终于 debug 到 JVM 了
  11. bootdo框架使用步骤总结
  12. C语言设计一个投票程序,c语言程序设计投票程序
  13. 极品-React中的DOM虚拟DOM,与deff算法,router
  14. DFI、DPI、端口识别技术
  15. 炒币玩波段为什么一定要设置止损止盈?
  16. 如何破解网络密码?(2种方法)
  17. oracle快速了解法,快速掌握Oracle基本语法,让你来去自如
  18. 盘它:上线 2 个月碾压微信、抖音,音遇登顶 App Store 榜幕后的数据真相
  19. h5+app客户端获取服务器传过来的cookie
  20. JAVA实现微信公众号支付

热门文章

  1. SAP中采购计划协议中交货容差测试
  2. 图书馆系统c语言作业,C语言图书馆管理系统课程设计报告
  3. 现货银价走势图分析技巧
  4. 指定位置签到-百度地图
  5. JS:页面载入完成时自动提交
  6. Jest 常用匹配器
  7. 贮藏 git stash
  8. CHIL-ORACLE-伪列
  9. 计算机网络核心知识之局域网、广域网、城域网(超细致)
  10. Flow-based学习笔记