重定向时传递参数

时间:2015-01-12 04:20:57

标签: php symfony authentication redirect

我有一个场景,用户点击收到的电子邮件需要登录的链接。如果链接是http://test.url.com/product/2,用户应该登录,并且页面应该在身份验证后重定向到相同的路径

我试图通过使用print_r($request->headers->get('referer'));来解决此问题,http://test.url.com/product/2在此处发布了一个问题:Redirect to the url of the clicked (referred) link。这是不成功的,因为它返回null。

我的下一个目标是根据网址将参数传递到登录页面。

例如:如果用户点击http://test.url.com/signin/product/2,则登录网址会显示为http://test.url.com/signing?=pruduct?2或{{1}},或类似系统会将用户重定向到所需网页的内容。< / p>

非常感谢有关从配置级别传递参数的任何文档/示例,因为我对此域名非常陌生。谢谢:))

2 个答案:

答案 0 :(得分:1)

我建议在登录网址上提及重定向网址作为查询字符串,如

http://test.url.com/signin/?redirect=http://test.url.com/product/2

成功登录后,您只需

$url=$_GET['redirect'];
header("location:".$url);

答案 1 :(得分:0)

这对你有帮助吗?

public function productAction($id, Request $request){
    $url = $this->container->get("router")->generate("product_route", array("id" => $id));

    /** @var $session Session */
    $session = $request->getSession();
    $session->set("redirect_url", $url);
}         

public function signinAction(Request $request){
    // do your stuff

    /** @var $session Session */
    $session = $request->getSession();
    if ($session->has("redirect_url")){
        return new RedirectResponse($session->get("redirect_url");
    }
}