一个人独自负责一个项目,正好记下以前没实现过的技术点,今天就从登陆功能开始,前端是js验证,后端是PHP脚本验证并且添加了记住密码功能。
从上图可以看出,前端西安嘉信铁路器材有限公司官网(http://www.xianjiaxin198.com/)主要的技术点是验证用户名和密码是否输入并给予提示,为了提高用户体验,用户一进入该页面,便自动聚焦到用户名输入框,同时在密码输入框里绑定个onkeypress事件,也就是用户输入完密码后,西安嘉信铁路器材有限公司官网(http://www.xianjiaxin198.com/)按回车键就可以完成操作,当然了这里做的事ajax验证,同时对于任何验证出错的信息都出现在用户名输入框上(见下图),并且设置了时限为3秒,也就是3秒后消失。
下面为HTML代码
- <form>@H_403_42@
- span@H_403_42@class@H_403_42@="error_msg"></span>@H_403_42@
- p@H_403_42@class@H_403_42@="pst_relative"label@H_403_42@class@H_403_42@="input_msg"labelinput@H_403_42@type@H_403_42@="text"@H_403_42@name@H_403_42@="username"@H_403_42@placeholder@H_403_42@="用户名"@H_403_42@class@H_403_42@="login_input"@H_403_42@maxlength@H_403_42@="60"pinput@H_403_42@type@H_403_42@="password"@H_403_42@name@H_403_42@="passwd"@H_403_42@placeholder@H_403_42@="密码"@H_403_42@onkeydown@H_403_42@="keydown(event)"@H_403_42@class@H_403_42@="login_input"@H_403_42@maxlength@H_403_42@="60"p@H_403_42@class@H_403_42@="clearfix"span@H_403_42@class@H_403_42@="fl_leftw_b60psw_info"input@H_403_42@type@H_403_42@="checkBox"@H_403_42@id@H_403_42@="remmberpwd"label@H_403_42@for@H_403_42@="remmberpwd">@H_403_42@记住密码a@H_403_42@class@H_403_42@="fl_rightpsw_info"@H_403_42@href@H_403_42@="#">@H_403_42@忘记密码?ainput@H_403_42@class@H_403_42@="fl_leftbtnbtn_login"@H_403_42@type@H_403_42@="button"@H_403_42@value@H_403_42@="登录"a@H_403_42@class@H_403_42@="fl_rightlog_rega"@H_403_42@href@H_403_42@="#">@H_403_42@免费注册>@H_403_42@
下面为js代码验证代码(西安嘉信铁路器材有限公司官网(http://www.xianjiaxin198.com/))
- @H_403_42@$(function@H_403_42@(){
- var@H_403_42@height=$(document).height();
- var@H_403_42@bgheight=$(".login_bg"@H_403_42@).height();
- $(".login_bg"@H_403_42@).css({"height"@H_403_42@:height+"px"@H_403_42@});
- $(".error_msg"@H_403_42@).hide();
- //默认账号输入框获得焦点@H_403_42@
- $('input[name=username]'@H_403_42@).focus();
- //点击登陆@H_403_42@
- $('.btn_login'@H_403_42@).click(function@H_403_42@(){
- var@H_403_42@username=$.trim($('input[name=username]'@H_403_42@).val());
- var@H_403_42@passwd=$.trim($('input[name=passwd]'@H_403_42@).val());
- var@H_403_42@remember=$('#remmberpwd'@H_403_42@).is(':checked'@H_403_42@)?1:0;
- if@H_403_42@(username==''@H_403_42@){
- $(".error_msg"@H_403_42@).html('请填写用户名'@H_403_42@);
- $(".error_msg"@H_403_42@).show().fadeOut(2000);
- $('input[name=username]'@H_403_42@).focus();
- return@H_403_42@false@H_403_42@;
- }else@H_403_42@if@H_403_42@(passwd==''@H_403_42@){
- $('请填写密码'@H_403_42@);
- $(".error_msg"@H_403_42@).show().fadeOut(2000);
- $('input[name=passwd]'@H_403_42@).focus();
- false@H_403_42@;
- }
- //异步提交@H_403_42@
- $.post('url'@H_403_42@,'username='@H_403_42@+username+'&password='@H_403_42@+passwd+'&remember='@H_403_42@+remember,function@H_403_42@(json){
- //验证失败@H_403_42@
- if@H_403_42@(json.status==0){
- $(".error_msg"@H_403_42@).html(json.message);
- $(".error_msg"@H_403_42@).show().fadeOut(2000);
- //成功@H_403_42@
- }else@H_403_42@{
- console.log('success'@H_403_42@);
- //location.href='';@H_403_42@
- }
- },'json'@H_403_42@)
- })
- });
- //判断回车@H_403_42@
- function@H_403_42@keydown(e){
- var@H_403_42@e=e||event;
- if@H_403_42@(e.keyCode==13){
- $(".btn_login"@H_403_42@).click();
- }
- }
认真看了下js验证代码后,应该知道有个remember变量,这个就是记住密码的,传到后台,PHP脚本通过接收该值,如果为1则说明需要记住密码,这里的技术点主要是PHP的一个方法setcookie ( string $name [,string $value [,int $expire = 0 [,string $path [,string $domain [,bool $secure = false [,bool $httponly = false ]]]]]] ),记住密码就利用了其中的第三个参数expire,西安嘉信铁路器材有限公司官网(http://www.xianjiaxin198.com/)那么在接收值为1时,便设置expire相关的过期时间,一般为1天也就是 setcookie('id',1,strtotime('+1 days')),同时要注意,由于cookie是存放在客户端的,因此那个id的值应该要加密,也就是存储的加密,提取的依据存储时加密规则反着来提取既可。记住密码后,那么下次再登陆时,便可以在相关的方法里这么写着
看到上面的代码应该知道isLogin就是验证用户之前是否已经记住密码了吧。
ok,就记到这,这个点过去了,西安嘉信铁路器材有限公司官网(http://www.xianjiaxin198.com/)这个项目还有好多没的点,以后有的是时间写。
转自:http://blog.csdn.net/molaifeng/article/details/10474509
西安嘉信铁路器材有限公司官网(http://www.xianjiaxin198.com/)
原文链接:https://www.f2er.com/ajax/163431.html