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

时间:2016-06-17 16:42:15

标签: php session session-variables session-cookies

我需要从网址获取数据,例如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>';

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

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您可以使用会话变量。

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

此会话var可在会话打开的任何位置访问。只需使用$_SESSION["id"]调用它即可。

的index.php

网址:www.domain.com/?id = user

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

otherpage.php

网址:www.domain.com/otherpage.php

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

答案 1 :(得分:1)

Jose对于在会话中保存ID是正确的。有一篇关于它的好帖子,特别是ID:Cookie vs Session for Storing IDs

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

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

此代码允许您检索ID!

echo $_COOKIE['id'];