PHP保留URL参数表单页面

Posted

技术标签:

【中文标题】PHP保留URL参数表单页面【英文标题】:PHP Preserving the URL parameters form page to page 【发布时间】:2015-10-03 22:26:06 【问题描述】:

我希望能够测试我正在使用 php 构建的网站,该网站从使用时间点的数据库中获取其所有内容。我有一系列页面用于维护内容并指定生效日期。

实时网站将无法访问会话。

我只是想用这样的参数破解 URL:

mywebsite.com/current.php?asof=2016-01-01

但我希望这个参数出现在所有后续页面上。

我想我可以使用 cookie,但我想要视觉提示。

最后,我导航到的一些页面会有额外的参数。

这可以吗?如果有,怎么做?

编辑: 有没有办法通过为任意响应注入 URL 参数来编辑响应。

【问题讨论】:

【参考方案1】:

如果导航仅通过链接和表单完成,并且您没有会话,则可以尝试在呈现 html 之前将参数注入所有链接和表单。

// set the asof value once upon starting navigation
$_GET['asof'] = '2016-01-01';

// then on all pages onward
// grab all links and inject all $_GET params
$html = preg_replace('/(href="[^"]+)"/', '$1?'.http_build_query($_GET).'"', $html);
// the same for forms
$html = preg_replace('/(action="[^"]+)"/', '$1?'.http_build_query($_GET).'"', $html);

echo $html;

这会获取在查询字符串 ($_GET) 中传递的所有数据,并将其注入所有链接和表单。所以每次点击链接都会传播 $_GET 参数。请记住,这是一个粗略的实现。这不考虑已经有查询字符串或粘贴 url 的链接。

【讨论】:

感谢您的想法,我将在接下来的几天内尝试并回复您。【参考方案2】:

设置您的 cookie,然后对于每个链接,您可以执行以下操作:

<?php
$asof = (isset($_COOKIE['asof']) ? 'asof=' . $_COOKIE['asof'] : '');
?>

<a href="/current.php?<?=$asof?>">link</a>

【讨论】:

感谢您的想法,我将在接下来的几天内尝试并回复您。 当然。只需确保在执行应用程序逻辑时仅依赖 cookie 或 GET。如果你混搭然后决定放弃一个,那就太糟糕了。

以上是关于PHP保留URL参数表单页面的主要内容,如果未能解决你的问题,请参考以下文章

提交 PHP 后保留表单值

使用.htaccess删除扩展名,但保留参数会导致页面样式不符

在php中不用表单怎样向另一个页面post参数并打开这个接值页面?

如何在 Javascript 重定向中保留 URL 参数?

PHP入门PHP与Web页面交互

如何在页面之间保留 url 参数?