跨多个页面存储PHP会话
我已经设置了一个PHP会话来捕获在URL中传递到站点的活动和CLICKID变量,即domain.com/index.PHP?&CLICKID=test1&CAMPAIGN=test1。我使用以下he代码实现此目标:跨多个页面存储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
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'];
?>