Php 如何将重定向URL传递到修改过的页面
我修改了我的页面,和它的方式非常相似。我有Php 如何将重定向URL传递到修改过的页面,php,mod-rewrite,url-rewriting,Php,Mod Rewrite,Url Rewriting,我修改了我的页面,和它的方式非常相似。我有www.example.com/users/login/,它将在内部使用users.login.php作为控制器。我想在登录完成后将一个参数作为重定向到的页面传递 如果你传入一个相对的URL,你会得到一个非常奇怪的URL,因为你传入的是类似于questions/的东西,看起来像users/login/questions/而不是login.php?redir=questions.php 有没有人对如何在不严重污染URL的情况下很好地解决这个问题有任何意见或
www.example.com/users/login/
,它将在内部使用users.login.php
作为控制器。我想在登录完成后将一个参数作为重定向到的页面传递
如果你传入一个相对的URL,你会得到一个非常奇怪的URL,因为你传入的是类似于questions/
的东西,看起来像users/login/questions/
而不是login.php?redir=questions.php
有没有人对如何在不严重污染URL的情况下很好地解决这个问题有任何意见或解决方案?我认为这样处理的方式是将登录表单放在“提问”页面上。我想这是一个解决方案,但我正在寻找其他的可能性
编辑:使用
$\u服务器['HTTP\u REFERER']
似乎是目前为止最好的解决方案。有什么理由不使用它吗?我知道你可以伪造推荐人,但这会造成任何损害吗?我在包含url的登录表单中使用隐藏字段,它对我有效。你也可以试试
$referer=isset($\u SERVER['HTTP\u referer'])$_服务器['HTTP_REFERER']:''代码>
注意:HTTP\u REFERER并不总是设置的。我在包含url的登录表单中使用隐藏字段,它对我有效。你也可以试试
$referer=isset($\u SERVER['HTTP\u referer'])$_服务器['HTTP_REFERER']:''代码>
注意:HTTP\u REFERER并不总是设置的。为什么不使用像
/users/login/?r=/questions/
这样的URL?或者,如果您不想使用URL携带回信地址,您可以使用HTTP参考者。为什么不使用类似于/users/login/?r=/questions/
的URL?或者,如果您不想使用URL携带回信地址,您可以使用HTTP Referer。存储已访问的上一页的最佳做法是使用$\u会话
全局。使用HTTP\u REFERER
进行统计之外的任何操作都会导致用户滥用,因为你很容易伪造一个REFERER
查看有关在cookie中存储多个会话ID的链接 存储已访问的上一页的最佳做法是使用
$\u会话
全局。使用HTTP\u REFERER
进行统计之外的任何操作都会导致用户滥用,因为你很容易伪造一个REFERER
查看有关在cookie中存储多个会话ID的链接 但这并不能真正解决我的问题。我如何将这些数据获取到登录页面?您有一个默认值,然后在将用户发送到登录页面的页面中添加数据。谁说我首先有一个表单?您还没有告诉我们如何获取用户的用户名和密码。您是使用ldap还是openid对用户进行身份验证?这无关紧要。我可以有一个空白的login.php,这并不重要。这并不能解决我如何从另一个页面获取信息的问题,但这并不能真正解决我的问题。我如何将这些数据获取到登录页面?您有一个默认值,然后在将用户发送到登录页面的页面中添加数据。谁说我首先有一个表单?您还没有告诉我们如何获取用户的用户名和密码。您是使用ldap还是openid对用户进行身份验证?这无关紧要。我可以有一个空白的login.php,这并不重要。这并不能解决我如何从另一个页面将信息导入该页面的问题。或者,您使用cookie或JavaScript并滥用window.name属性来存储位置。或者您使用cookie或JavaScript并滥用window.name属性来存储位置。可能会打开两个窗口,这会扰乱整个过程会话方法我知道这是一个很小的答案,但您可以在一个cookie中存储多个会话ID。查看此链接。这就打开了一整罐虫子。第二个最好的答案是+1可能会有两个窗口打开,这会打乱会话方法。我知道这是一个很小的答案,但您可以在一个cookie中存储多个会话ID。查看此链接。这就打开了一整罐虫子。第二个最好的答案是+1.