php - 从引荐来源创建 session

标签 php mysql session

背景:我有一个网站,我们称之为 AwesomeSite.com;它处理我所有的流量。此外,出于营销目的,我有第二个域,我们将其称为 PromoForAwesomeSite.com;它将所有流量直接重定向到 AwesomeSite。这两个站点都是使用 PHP、MySQL 和 Apache 构建的。

问题:我想根据用户访问我网站的方式向他们提供不同的内容。具体来说,如果用户是从 PromoForAwesomeSite 重定向的,我想显示促销。

问题:我如何检测到用户来自 PromoForAwesomeSite 并因此为他们创建不同的 session 状态?

附注我很清楚这种方法的缺点,一旦 session cookie 被删除,促销用户将无法看到促销内容,除非他们重新访问重定向站点(不太可能)。不幸的是,这无能为力。

最佳答案

您可以使用 $_SERVER['HTTP_REFERER'] 并查看在引用字符串中是否包含 PromoForAwesomeSite.com。例如这样的事情:

session_start();

if(substr_count($_SERVER['HTTP_REFERER'] , 'PromoForAwesomeSite.com')){
    $_SESSION['from_promo'] = 1;
}

由于引荐来源网址可能会被浏览器阻止,因此您可能会研究在促销网站的重定向字符串中发送 GET 参数的可能性。不确定你是如何从你的促销网站重定向的,但如果它是 PHP 你可以做这样的事情,否则你会明白我的意思:)

HEADER('Location: http://AwesomeSite.com/index.php?from=promo');

因此,除了(或除此之外)检查引荐来源网址,您还可以检查此字符串并保存在 session 中。

关于php - 从引荐来源创建 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6983886/

相关文章:

.net - 大字符串而在 POST 期间忽略空格后的字母

MySQL:使用公共(public) ibdata 文件恢复 1 个 InnoDB 表

android - Facebook SDK 3.0 : Unable to call openForPublish after the during a session state CLOSED_LOGIN_FAILED

php - 如何从WordPress中的category.php查询中按id排除帖子

php - MySQL 中本地主机和生产环境中的字符串不同

php - Curl POST 作为 GET 执行

MySQL 在 : mysql "ERROR 1524 (HY000): Plugin ' auth_socket' is not loaded"上失败

mysql - 将远程位置 B 到 L 的数据库中的相似数据集中到位置 A 的数据库中

session - 获取grails计划魔术保存的所有对象的列表

php - 如何在 PHP 中关闭浏览器后保持 session 打开?