从 URL 获取 ID 并将其存储在变量中

Get ID from URL and store it in variable

我需要从 URL 获取数据,例如 domain.com/?id=username

用户名因用户而异...一旦他们像这样使用 link 访问网站,他们就可以在网站上四处走动,然后在某个时候填写表格。由于他们在网站上四处移动,url 路径中将没有 ?id=username,因此我需要将该数据存储在变量中以便能够将其与表单一起发送。

我假设我需要根据 session 设置和存储 cookie(这样 cookie 将在 session / 浏览器退出后刷新)

我使用 ob_start() 因为我必须在 body 中实现此代码,而 headers 已发送。

ob_start(); 
session_start();
$affid = $_GET['id'];
setcookie('affid',$affid, 0, "/");
$finalaffID = $_COOKIE['affid'];
ob_end_clean(); 
echo '<span class="testoutput">'.$finalaffID.'</span>';

经过一些尝试,我得到了这段代码,但它在我移动几页后并没有存储值,它只显示初始页面访问。

有什么想法吗?

您可以使用会话变量。

$_SESSION["id"] = $_GET["id"];

此会话变量可在会话打开的任何位置访问。只需用 $_SESSION["id"].

调用它

index.php

Url: www.domain.com/?id=用户

    <?php
         session_start();
         if (isset($_GET["id"])) {
              $_SESSION["id"] = $_GET["id"];
    }
?>

otherpage.php

Url: www.domain.com/otherpage.php

<?php
session_start();
if (isset($_SESSION["id"])){
echo $_SESSION["id"];
}
?>

Jose 关于在会话中保存 ID 的说法是正确的。这里有一个很好的 post 专门处理 ID:Cookie vs Session for Storing IDs

但是,如果您想将其存储为 cookie,此代码会存储 ID。

$id  = $_GET['id']);
setcookie('id', $id);

并且此代码允许您检索 ID!

echo $_COOKIE['id'];