我希望能够使用PHP测试我正在构建的网站,该网站从使用时间点的数据库中获取所有内容。我有一系列页面用于维护内容并指定有效日期。
直播网站无法访问会话。
我只是想用这样的参数破解URL:
mywebsite.com/current.php?asof=2016-01-01
但我希望此参数出现在所有后续页面上。
我猜我可以使用cookies,但我想要视觉提示。
最后,我导航到的一些页面将有其他参数。
可以这样做吗?如果是这样,怎么样?
编辑: 有没有办法通过为任意响应注入URL参数来编辑响应。
答案 0 :(得分:2)
如果仅通过链接和表单进行导航,并且您没有会话,则可以尝试在呈现html之前将params注入所有链接和表单。
// 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参数。请记住,这是一个粗略的实现。这并未考虑已有查询字符串或粘贴网址的链接。
答案 1 :(得分:1)
设置您的Cookie,然后为每个链接执行以下操作:
<?php
$asof = (isset($_COOKIE['asof']) ? 'asof=' . $_COOKIE['asof'] : '');
?>
<a href="/current.php?<?=$asof?>">link</a>