1 Star 1 Fork 8

ledaishu / HoorayOS

forked from Hooray / HoorayOS
关闭
 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
login.ajax.php 5.08 KB
一键复制 编辑 Web IDE 原始数据 按行查看 历史
hooray 提交于 2017-08-25 09:22 . 更新composer支持
<?php
require('global.php');
switch($_REQUEST['ac']){
//登录
case 'login':
$rememberMe = isset($_POST['rememberMe']) ? 1 : 0;
$row = $db->get('tb_member', '*', array(
'AND' => array(
'username' => $_POST['username'],
'password' => sha1($_POST['password'])
)
));
if($row){
$db->update('tb_member', array(
'lastlogindt' => $db->get('tb_member', 'thislogindt', array(
'tbid' => $row['tbid']
)),
'lastloginip' => $db->get('tb_member', 'thisloginip', array(
'tbid' => $row['tbid']
)),
'thislogindt' => date('Y-m-d H:i:s'),
'thisloginip' => getIp()
), array(
'tbid' => $row['tbid']
));
session('member_id', $row['tbid']);
cookie('memberID', $row['tbid'], 3600 * 24 * 7);
$cb['info'] = '';
$cb['status'] = 'y';
//判断是否为第三方登录
if(cookie('fromsite') && session('?openid') && session('?openname')){
if($row['openid_'.cookie('fromsite')] != ''){
$cb['info'] = 'ERROR_OPENID_IS_USED';
$cb['status'] = 'n';
}else{
$db->update('tb_member', array(
'openid_'.cookie('fromsite') => session('openid'),
'openname_'.cookie('fromsite') => session('openname'),
'openavatar_'.cookie('fromsite') => session('openavatar'),
'openurl_'.cookie('fromsite') => session('openurl')
), array(
'tbid' => $row['tbid']
));
cookie('fromsite', NULL);
session('openid', NULL);
session('openname', NULL);
session('openavatar', NULL);
session('openurl', NULL);
}
}
//处理登录用户信息到cookie
$userinfo = array();
$userinfo['username'] = $_POST['username'];
$userinfo['password'] = $_POST['rememberMe'] ? authcode($_POST['password'], 'ENCODE') : '';
$userinfo['rememberMe'] = $_POST['rememberMe'];
$userinfo['avatar'] = getAvatar($row['tbid'], 'l');
cookie('userinfo', json_encode($userinfo), 3600 * 24 * 7);
}else{
$cb['info'] = '';
$cb['status'] = 'n';
}
echo json_encode($cb);
break;
//第三方登录
case '3login':
//检测所需数据是否存在
if(cookie('fromsite') && session('?openid') && session('?openname')){
$row = $db->get('tb_member', '*', array(
'openid_'.cookie('fromsite') => session('openid')
));
if($row){
$db->update('tb_member', array(
'lastlogindt' => $db->get('tb_member', 'thislogindt', array(
'tbid' => $row['tbid']
)),
'lastloginip' => $db->get('tb_member', 'thisloginip', array(
'tbid' => $row['tbid']
)),
'thislogindt' => date('Y-m-d H:i:s'),
'thisloginip' => getIp()
), array(
'tbid' => $row['tbid']
));
session('member_id', $row['tbid']);
cookie('memberID', $row['tbid'], 3600 * 24 * 7);
//清空数据
cookie('fromsite', NULL);
session('openid', NULL);
session('openname', NULL);
session('openavatar', NULL);
session('openurl', NULL);
}else{
echo 'ERROR_NOT_BIND';
}
}else{
echo 'ERROR_LACK_OF_DATA';
}
break;
//注册
case 'register':
require('libs/system/clicaptcha/clicaptcha.class.php');
$clicaptcha = new clicaptcha();
if($clicaptcha->check($_POST['clicaptcha_info'])){
if(!$db->has('tb_member', array(
'username' => $_POST['reg_username']
))){
$db->insert('tb_member', array(
'username' => $_POST['reg_username'],
'password' => sha1($_POST['reg_password']),
'lockpassword' => sha1($_POST['reg_password']),
'thislogindt' => date('Y-m-d H:i:s'),
'thisloginip' => getIp(),
'regdt' => date('Y-m-d H:i:s')
));
$cb['info'] = $_POST['reg_username'];
$cb['status'] = 'y';
}else{
$cb['info'] = '用户名已存在';
$cb['status'] = 'n';
}
}else{
$cb['info'] = '验证码错误';
$cb['status'] = 'n';
}
echo json_encode($cb);
break;
case 'checkUsername':
if(!$db->has('tb_member', array(
'username' => $_POST['param']
))){
$cb['info'] = '';
$cb['status'] = 'y';
}else{
$cb['info'] = '用户名已存在,请更换';
$cb['status'] = 'n';
}
echo json_encode($cb);
break;
//登出
case 'logout':
session('member_id', NULL);
cookie('memberID', NULL);
//手动退出,取消userinfo cookie里的自动登录选项
$userinfo = json_decode(stripslashes(cookie('userinfo')), true);
$userinfo['rememberMe'] = 0;
$userinfo['password'] = '';
cookie('userinfo', json_encode($userinfo));
$cb['status'] = 'y';
echo json_encode($cb);
break;
//解锁登录
case 'unlock':
$userinfo = json_decode(stripslashes(cookie('userinfo')), true);
$row = $db->get('tb_member', '*', array(
'AND' => array(
'username' => $userinfo['username'],
'lockpassword' => sha1($_POST['password'])
)
));
if($row){
session('member_id', $row['tbid']);
cookie('memberID', $row['tbid'], 3600 * 24 * 7);
echo 1;
}else{
echo 'ERROR_LOCKPASSWORD';
}
break;
}
?>
1
https://gitee.com/ledaishu/HoorayOS.git
git@gitee.com:ledaishu/HoorayOS.git
ledaishu
HoorayOS
HoorayOS
master

搜索帮助

14c37bed 8189591 565d56ea 8189591