2012-08-22 47 views
0

如果用户没有登录到我们的门户,我使用PHP Codeigniter库中的重定向将用户重定向到上次访问的URL。如果#登录URL,Codeigniter重定向功能失败

$ uri = $ this-> ci-> uri-> uri_string(); $ this-> ci-> session-> set_flashdata('redirect',$ uri);

它工作正常,除了一种情况:

当在URL中的#号为前:

http://myview.com/library#portal/sh2qQXF3SxAbJ

它重定向回http://myview.com/library

它并不需要#号后的地址。

在我们的前端,我们使用Backbone.js的检测#号和火起来接下来需要使用JavaScript做了什么..

我的问题是,如果有存储整个URL的方式在codeigniter会话变量?

回答

2

#的部分被称为片段,并且它永远不会传输到服务器(除非您手动执行,作为AJAX中的参数或其他内容)。因此,你的PHP将永远不会在查询URL中看到它。

+0

嗨阿马丹,感谢您的信息。任何方式来解决它?在这种情况下,重定向如何工作?我们将如何存储它? –

+0

用'location.href'(整件事物)或'location.hash'(只是片段)抓住客户端,并将其发送到服务器;然后使用它来代替'$ this-> ci-> uri'。我不太清楚你的应用程序的流程(我从来没有使用过codeigniter),所以我不能告诉你传输它的时间和地点的细节。 – Amadan