|
|
@@ -67,7 +67,7 @@ class User extends Frontend
|
|
|
*/
|
|
|
public function register()
|
|
|
{
|
|
|
- $url = $this->request->request('url', url('user/index'));
|
|
|
+ $url = $this->request->request('url');
|
|
|
if ($this->auth->id)
|
|
|
$this->success(__('You\'ve logged in, do not login again'), $url);
|
|
|
if ($this->request->isPost()) {
|
|
|
@@ -116,12 +116,18 @@ class User extends Frontend
|
|
|
$uc = new \addons\ucenter\library\client\Client();
|
|
|
$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 {
|
|
|
$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'));
|
|
|
return $this->view->fetch();
|
|
|
}
|
|
|
@@ -131,7 +137,7 @@ class User extends Frontend
|
|
|
*/
|
|
|
public function login()
|
|
|
{
|
|
|
- $url = $this->request->request('url', url('user/index'));
|
|
|
+ $url = $this->request->request('url');
|
|
|
if ($this->auth->id)
|
|
|
$this->success(__('You\'ve logged in, do not login again'), $url);
|
|
|
if ($this->request->isPost()) {
|
|
|
@@ -169,11 +175,18 @@ class User extends Frontend
|
|
|
$uc = new \addons\ucenter\library\client\Client();
|
|
|
$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 {
|
|
|
$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'));
|
|
|
return $this->view->fetch();
|
|
|
}
|