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参数表单页面的主要内容,如果未能解决你的问题,请参考以下文章
使用.htaccess删除扩展名,但保留参数会导致页面样式不符