Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将重定向URL传递到修改过的页面_Php_Mod Rewrite_Url Rewriting - Fatal编程技术网

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']:''
  • 获取发布的url并将用户重定向到该url

  • 注意:HTTP\u REFERER并不总是设置的。

    我在包含url的登录表单中使用隐藏字段,它对我有效。你也可以试试

  • 创建隐藏的输入字段
  • 将输入字段的值设置为
    $referer=isset($\u SERVER['HTTP\u referer'])$_服务器['HTTP_REFERER']:''
  • 获取发布的url并将用户重定向到该url

  • 注意: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.