跨多个页面存储PHP会话

跨多个页面存储PHP会话,php,session,variables,store,Php,Session,Variables,Store,我已经设置了一个PHP会话来捕获在URL中传递到站点的活动和CLICKID变量,即domain.com/index.PHP?&CLICKID=test1&CAMPAIGN=test1。我使用以下he代码实现此目标: <?php session_start(); $_SESSION["campaign"] = $_GET['campaign']; $_SESSION["clickid"] = $_GET['clickid']; ?> 然后通过外部链接将其传递给第三方,例如test

我已经设置了一个PHP会话来捕获在URL中传递到站点的活动和CLICKID变量,即domain.com/index.PHP?&CLICKID=test1&CAMPAIGN=test1。我使用以下he代码实现此目标:

<?php
session_start();
$_SESSION["campaign"] = $_GET['campaign'];
$_SESSION["clickid"] = $_GET['clickid'];
?>

然后通过外部链接将其传递给第三方,例如test.php?&clickid=&campaign=

然而,我似乎不能做的是跨域共享此会话。如果你登陆到A页并点击链接,这个脚本就可以运行了,但是我想让用户点击链接,访问X页和Y页,返回到A页,变量仍然会被存储


有人能帮忙吗?

如果没有get参数,您似乎正在覆盖变量

仅当参数存在时,才应写入会话:

<?php
session_start();

if(isset($_GET['campaign'])){
    $_SESSION["campaign"] = $_GET['campaign'];
}
if(isset($_GET['clickid'])){
    $_SESSION["clickid"] = $_GET['clickid'];
}


?>

请记住,
$\u会话
旨在允许您设置一次变量,然后在另一页上访问它。我猜你在X和Y两个页面上都有相同的内容

如果您在页面上设置变量,如下所示:

<?php
session_start();
$_SESSION["campaign"] = $_GET['campaign'];
$_SESSION["clickid"] = $_GET['clickid'];
?>

我认为您的错误是错误地认为从URL(test.php?&clickid=&campaign=)中删除值不会重置
$\u会话变量
$\u GET['clickid']
$\u GET['campaign']
仍处于设置状态

第X页和第Y页是否在同一个域中?在每页检查
isset($\u GET['campaign'))
isset($\u GET['clickid'))
。如果未设置,则将其附加到当前url并重定向到新创建的url
<?php
session_start();
// Don't rewrite your variables by setting them again, they're already set!
echo $_SESSION['campaign'];
echo $_SESSION['clickid'];
?>