我正在尝试创建一个重定向到用户登录后打开的最后一个页面的函数。但是有可能打开了iframe,如果打开该页面时用户被重定向,我希望用户重定向到主页的网址,而不是iframe的网址。我尝试使用:
$url = $_SERVER['HTTP_REFERER'];
$url = $_SERVER['REQUEST_URI'];
$url = '<script>document.write(window.parent.window.location.pathname);</script>';
前两个获取iframe的网址,而第三个获取了我缓存的变量后,当我转到另一个页面时开始更改。当我重定向到这些url时,前两个工作但是第三个尝试重定向到完整脚本而不是结果,但是如果我回显该变量,我确实会获得一个url。该函数在laravel中使用,它是以下函数:
protected function redirectTo($request)
{
$url = "the current url"
Cache::forget('key');
Cache::put('key', $url, 10);
echo '<script>window.parent.window.location.href = \'' . config('app.url') . 'login\'</script>';die();
}
这会将用户带到登录页面,并在用户登录后使用此功能转到旧页面:
if(Auth ::attempt(['usr_emailaddress' => $email, 'password' => $pass]))
{
$value = Cache::get('key');
return redirect($value);
}