存储重定向URL以供以后使用

时间:2011-06-27 18:28:30

标签: php mysql

我正在尝试存储重定向网址,以便稍后使用几页,但我无法弄清楚如何将其从一个地方转移到另一个地方。

通常我只是通过URL传递变量,但由于我的重定向URL本身包含URL变量,因此这并不完全有效。

为了让您更好地了解我正在尝试做什么,这是结构。

第1页:用户可以点击链接在第2页上添加内容

第2页:用户输入文字。在此页面上提交表单会调用“formsubmit.php”来处理MySQL数据条目。在 this 结束时,我需要再次将用户重定向到 PAGE 1 。重定向网址需要与最初在第1页

上的内容完全匹配

有没有人对如何解决这个问题有任何建议?

5 个答案:

答案 0 :(得分:6)

您应该使用$ _SESSION将变量存储在会话内存中。至于具体如何处理这个问题,你应该能够弄明白(存储变量,检查它是否存在以后,如果是这样重定向等)但是$ _SESSION会更有效/更少比试图在查询字符串中来回传递事物更麻烦。

要声明会话变量,您可以执行以下操作:

$_SESSION['redirUrl'] = "http://www.lolthisisaurl.com/lolagain";

然后引用它你就是

$theUrl = $_SESSION['redirUrl'];

以下是一些可以帮助您入门的材料:http://php.net/manual/en/reserved.variables.session.php

答案 1 :(得分:2)

我建议使用会话变量,或将重定向url存储在隐藏的表单参数中。会话变量非常简单;只需初始化会话(一次,在每个页面的顶部),然后将变量分配给$_SESSION全局变量:

<?php

session_start();
...
$_SESSION['redirect_url'] = whatever.com;
...

隐藏表单参数通过将页面之间的数据作为表单数据发送来工作。在后端,您将添加将URL存储在表单变量中的代码:

<input type='hidden' name='redirect_url' value='<?php echo $redirect_url; ?>';

在每个页面上,您可以从$_POST$_GET变量(取决于哪个)中取出该网址,然后将其插入下一页的隐藏表单中。

答案 2 :(得分:1)

您可以使用urlencodeurldecode传递一个字符串,该字符串包含的元素会破坏网址查询中的网址。

答案 3 :(得分:1)

我可以看到两种可能的解决方案:

此致

最高

答案 4 :(得分:1)

您可以将此隐藏字段添加到表单中:

<input type="hidden" name="referer" value="<?php echo $_SERVER['HTTP_REFERER']; ?>">

然后使用header()重定向到此页面:

header('Location: '. $_POST['referer']);