修复登录成功后无法返回之前页的BUG

pull/56/head
Karson 2018-04-04 17:37:30 +08:00
parent 064e129342
commit d07a642a2d
3 changed files with 20 additions and 5 deletions

View File

@ -67,7 +67,7 @@ class User extends Frontend
*/ */
public function register() public function register()
{ {
$url = $this->request->request('url', url('user/index')); $url = $this->request->request('url');
if ($this->auth->id) if ($this->auth->id)
$this->success(__('You\'ve logged in, do not login again'), $url); $this->success(__('You\'ve logged in, do not login again'), $url);
if ($this->request->isPost()) { if ($this->request->isPost()) {
@ -116,12 +116,18 @@ class User extends Frontend
$uc = new \addons\ucenter\library\client\Client(); $uc = new \addons\ucenter\library\client\Client();
$synchtml = $uc->uc_user_synregister($this->auth->id, $password); $synchtml = $uc->uc_user_synregister($this->auth->id, $password);
} }
$this->success(__('Sign up successful') . $synchtml, $url); $this->success(__('Sign up successful') . $synchtml, $url ? $url : url('user/index'));
} else { } else {
$this->error($this->auth->getError()); $this->error($this->auth->getError());
} }
} }
Session::set('redirect_url', $url); //判断来源
$referer = $this->request->server('HTTP_REFERER');
if (!$url && (strtolower(parse_url($referer, PHP_URL_HOST)) == strtolower($this->request->host()))
&& !preg_match("/(user\/login|user\/register)/i", $referer)) {
$url = $referer;
}
$this->view->assign('url', $url);
$this->view->assign('title', __('Register')); $this->view->assign('title', __('Register'));
return $this->view->fetch(); return $this->view->fetch();
} }
@ -131,7 +137,7 @@ class User extends Frontend
*/ */
public function login() public function login()
{ {
$url = $this->request->request('url', url('user/index')); $url = $this->request->request('url');
if ($this->auth->id) if ($this->auth->id)
$this->success(__('You\'ve logged in, do not login again'), $url); $this->success(__('You\'ve logged in, do not login again'), $url);
if ($this->request->isPost()) { if ($this->request->isPost()) {
@ -169,11 +175,18 @@ class User extends Frontend
$uc = new \addons\ucenter\library\client\Client(); $uc = new \addons\ucenter\library\client\Client();
$synchtml = $uc->uc_user_synlogin($this->auth->id); $synchtml = $uc->uc_user_synlogin($this->auth->id);
} }
$this->success(__('Logged in successful') . $synchtml, $url); $this->success(__('Logged in successful') . $synchtml, $url ? $url : url('user/index'));
} else { } else {
$this->error($this->auth->getError()); $this->error($this->auth->getError());
} }
} }
//判断来源
$referer = $this->request->server('HTTP_REFERER');
if (!$url && (strtolower(parse_url($referer, PHP_URL_HOST)) == strtolower($this->request->host()))
&& !preg_match("/(user\/login|user\/register)/i", $referer)) {
$url = $referer;
}
$this->view->assign('url', $url);
$this->view->assign('title', __('Login')); $this->view->assign('title', __('Login'));
return $this->view->fetch(); return $this->view->fetch();
} }

View File

@ -3,6 +3,7 @@
<div class="logon-tab clearfix"> <a class="active">{:__('Sign in')}</a> <a href="{:url('user/register')}">{:__('Sign up')}</a> </div> <div class="logon-tab clearfix"> <a class="active">{:__('Sign in')}</a> <a href="{:url('user/register')}">{:__('Sign up')}</a> </div>
<div class="login-main"> <div class="login-main">
<form name="form" id="login-form" class="form-vertical" method="POST" action=""> <form name="form" id="login-form" class="form-vertical" method="POST" action="">
<input type="hidden" name="url" value="{$url}" />
<div class="form-group"> <div class="form-group">
<label class="control-label" for="account">{:__('Account')}</label> <label class="control-label" for="account">{:__('Account')}</label>
<div class="controls"> <div class="controls">

View File

@ -4,6 +4,7 @@
<div class="login-main"> <div class="login-main">
<form name="form1" id="register-form" class="form-vertical" method="POST" action=""> <form name="form1" id="register-form" class="form-vertical" method="POST" action="">
<input type="hidden" name="invite_user_id" value="0" /> <input type="hidden" name="invite_user_id" value="0" />
<input type="hidden" name="url" value="{$url}" />
<div class="form-group"> <div class="form-group">
<label class="control-label required">{:__('Email')}<span class="text-success"></span></label> <label class="control-label required">{:__('Email')}<span class="text-success"></span></label>
<div class="controls"> <div class="controls">