实现用户登录和退出

用户登录和退出功能在许多地方得到应用。在一些项目中,我们需要在ajax模式下登录。成功登录后,我们只刷新页面部分,以增强用户体验。本文将使用PHP和jQuery来实现登录和退出功能。

准备数据库



在这个例子中,我们使用MySQL数据库创建一个表结构如下的用户表:




创建表(用户)
` ID ` int(11)不为空auto_increment,
`用户名` varchar(30)不为空的评论用户名,
`密码` varchar(32)不为空的评论密码,
` login_time ` int(10)默认为空的评论登录时间,
` login_ip ` varchar(32)默认为空的评论登录IP,
` login_counts ` int(10)不为空的默认'0'comment登录号,
主键(id)
= MyISAM引擎默认的字符集utf8);



然后将用户信息数据插入到用户表中:




插入`用户`(` ID `,`用户名密码`,` `,` login_time `,` login_ip `,` login_counts `)
值(1,'demo ','fe01ce2a7fbac8fafaed7c982a04e229 ',' ',' ',0);



index.php



输入用户名和密码后,用户提示用户成功登录,并显示相关登录信息。如果单击退出,它将退出到用户登录界面。

进入index.php,如果用户已经登录,登录信息显示和登录框如果登录框没有登录要求。





用户登录
< PHP
如果(isset($ _session {用户})){
>

祝贺你取得了成功!
你是第一个登录这个站的。
我们最后一次在这个车站降落是:
{退出}



用户名 uff1a
uff1a密码










值得注意的是,声明应该被添加到index.php文件头:session_start;同时,在头部的一部分,是介绍jQuery库,和global.js包括。您还可以为登录框编写一个漂亮的CSS样式。当然,这个例子已经写了一个简单的样式,请检查源代码。









global.js



的global.js文件包括jQuery代码被执行。要做的第一件事是让输入框获得焦点,一旦百度眉目传情,和鼠标光标在输入框。使用的代码如下:




$(函数(){())
$(#用户)重点();
});



下一步要做的是在输入框失去焦点时显示不同的样式,例如,在这种情况下,我们使用不同的边框颜色。




$(输入文本,文本,输入密码)。焦点(函数(){(){)
$(这)。AddClass(cur_select );
});
$(输入文本,文本,输入密码)。Blur(function(){(){)
$(这)。RemoveClass(cur_select );
});



用户登录:登录按钮,用户点击后,首先要验证用户的输入不能为空,然后发送一个Ajax请求的背景login.php.when背景验证成功,返回登录用户信息,如用户登录次数、最后登录时间。如果登录失败,则返回登录失败信息。




$(。按钮)。活(听到咔哒声,函数(){)
用户= $(var#用户)的瓦迩();
VaR通过=美元(#通)的瓦迩();
如果(用户= ){
Html()用户名不是空的!)。AppendTo(子),FadeOut(2000);
$(#用户)重点();
返回false;
}
如果(传递= ){
Html(密码不能是空的)!)。AppendTo(子),FadeOut(2000);
$(#通)重点();
返回false;
}
$ ajax({
类型:邮政
网址: phpaction =登录登录。
DataType:JSON
数据:{用户):用户通行证:通行证},
beforesend:函数(){
$()。AddClass(加载)。Html(登录…)Css(色。
。appendto('子');
},
成功:函数(JSON){
如果(JSON = 1){
$(# login_form )删除();
var。
你是第一个+ JSON。login_counts +登录到这个网站。
登录到本站的最后一次:+ JSON。login_time +
{出口};
$(#登录)追加(DIV);
其他{ }
$(#味精)删除();
美元(Css)(Html)。
淡出(2000);
返回false;
}
}
});
});



在编写Ajax请求时,数据传输格式是JSON,返回的数据也是JSON数据。js是用来解析JSON数据,登录后获取用户信息,然后添加#登录元追加完成登录操作。

当用户退出:点击退出,一个Ajax请求发送到login.php,所有会话注销的背景,和页面回到登录界面。




$(#糊涂人),生活(听到咔哒声,函数(){)
美元。后(登录。phpaction =笨人
如果(MSG = 1){
$(#结果)删除();
用户名:

密码:<输入类型'password'class =输入名称=往
ID =往/>


$(#登录)追加(DIV);
}
});
});



login.php



根据前台提交的请求,我们可以输入用户输入的用户名和密码,并将其与数据库中相应的用户名和密码进行比较。如果比较成功,我们将更新新的用户登录信息,并将JSON数据发送到前台。




session_start();
require_once('connect。php);

行动=美元_get美元{ 'action};
如果($行动= = 'login){ / /日志
用户名= stripslashes(TRIM($ _post {用户}));
通过stripslashes美元=(TRIM($ _post往{ }));
如果(emptyempty(用户名)){
回声用户名不能为空;
出口;
}
如果(emptyempty(合传)){
回声密码不能为空;
出口;
}
md5pass美元= MD5($通); / / MD5加密的密码
查询= mysql_query美元(SELECT * FROM用户,用户名为用户名);

美元= is_array($行= mysql_fetch_array($查询));

PS =美元美元美元美元md5pass = = { }:假行'password;
如果(ps){
美元美元'login_counts的行计数= { } + 1;
_session美元{用户} = { } $行'username;
_session美元{ 'login_time} = { } 'login_time美元的行;
_session { } = 'login_counts美元的美元数;
美元= get_client_ip IP(IP); / /访问
登录时间= mktime(美元);
RS = mysql_query美元(更新用户设置login_time = $登录时间,login_ip =美元的IP,
login_counts = $计数);
如果($ RS){
{ } = ''成功的ARR美元1;
{ } = 'msg ARR美元的登录成功!;
ARR { } =美元用户用户_session美元{ };
{ } =美元'login_time ARR的日期('y-m-d H:我:',_session美元{ 'login_time});
{ } = 'login_counts ARR美元的美元'login_counts_session { };
{人}
{ } = ''成功的ARR美元0;
$arr{'msg'} = 'login failure';
}
{人}
{ } = ''成功的ARR美元0;
{ } = 'msg ARR美元的用户名或密码错误!;
}
回声json_encode($ ARR); / / JSON输出数据
}
($行动= = 'lout){ / /退出
unset($ _session);
session_destroy();
回声1;
}



在当前平台要求退出,只是写下会话并返回1到前台JS。注意get_client_ip()在上面的代码是一个函数获取客户端IP,这是局限于文本的长度,你可以下载源代码,查看它。



好了,一套完整的用户登录和退出程序来完成,缺点是难免的,欢迎批评。

以上是本文的全部内容,希望大家能喜欢。