【发布时间】:2016-10-19 13:58:37
【问题描述】:
我需要从 URL 获取数据,例如 domain.com/?id=username
用户名因用户而异...一旦他们访问带有此类链接的网站,他们就可以在网站上四处走动,然后在某个时候填写表格。由于他们在网站上移动,因此 url 在路径中不会有 ?id=username,因此我需要将该数据存储在变量中以便能够与表单一起发送。
我假设我需要为每个会话设置和存储 cookie(以便 cookie 在会话/浏览器退出后刷新)
我使用 ob_start() 因为我必须在正文中实现此代码,此时标头已经发送。
ob_start();
session_start();
$affid = $_GET['id'];
setcookie('affid',$affid, 0, "/");
$finalaffID = $_COOKIE['affid'];
ob_end_clean();
echo '<span class="testoutput">'.$finalaffID.'</span>';
经过一些尝试,我得到了这段代码,但在我移动几页后它没有存储值,它只显示初始页面访问。
有什么想法吗?
【问题讨论】:
-
来自文档:“一旦设置了 cookie,就可以在 下一页加载 时使用
$_COOKIE数组访问它们。 " php.net/manual/en/function.setcookie.php -
将 ID 存储在会话中,以便您可以在任何页面中使用它:
$_SESSION[ "id" ] = $_GET[ "id" ];,您不需要任何表单或 cookie(不要忘记每个页面中的session_start();!)。 -
"我假设我需要为每个会话设置和存储 cookie(以便 cookie 在会话/浏览器退出后刷新)" 是的,当浏览器关闭,cookie 可以有更长的寿命。如果你想在那个页面上使用cookie的内容,在重新加载之前,使用
$affid,在页面刷新之后,或者访问另一个页面,你可以使用$_COOKIE['affid']。
标签: php session session-variables session-cookies