首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用PHP获取UTM?

如何使用PHP获取UTM?
EN

Stack Overflow用户
提问于 2016-10-11 14:48:01
回答 1查看 10K关注 0票数 3

我是UTM (海胆追踪模块)的新手,我想要获得用户点击链接的UTM参数(例如facebook,google,twitter),以及用户点击相同utm源的链接的次数,并将其保存到mysql数据库中。

我有一个PHP代码片段,但是utm参数没有被获取并保存在数据库中。

如何解决这个问题?

代码语言:javascript
复制
if(isset($_SERVER['HTTP_REFERER'])){
 $utm_source = isset($_GET['utm_source']) ? $_GET['utm_source'] : '';
 $utm_medium = isset($_GET['utm_medium']) ? $_GET['utm_medium'] : '';
 $utm_campaign = isset($_GET['utm_campaign']) ? $_GET['utm_campaign'] : '';
 $utm_term = isset($_GET['utm_term']) ? $_GET['utm_term'] : '';

echo $_SERVER['HTTP_REFERER'];

$sql = "INSERT INTO utm_param(utm_source,utm_medium,utm_campaign)
        VALUES('".$conn->real_escape_string($utm_source)."',
               '".$conn->real_escape_string($utm_medium)."',
               '".$conn->real_escape_string($utm_campaign)."')";
}

utm_param数据库表结构

EN

回答 1

Stack Overflow用户

发布于 2016-10-11 15:10:38

在我们考虑获取UTM属性的值之前,您有一个需要注意的安全问题。您目前正在接受未经清理(不安全)的用户输入(通过$_POST['var']),并将其直接放入数据库查询中,这是一种不安全的做法,允许SQL注入(例如,恶意用户可以向您发送一个特制的字符串,使他们能够对您的数据库执行任何他们喜欢的操作)。

请阅读this Stack Overflow question,了解如何在PHP中避免SQL注入。

通常,用于跟踪用户来源的标准utm参数构成查询字符串的一部分,例如:

http://yoursite.com?utm_source=google&utm_campaign=campaign_name

除非你正在做一些非标准的事情,否则这将是一个对你的服务器的GET请求(而不是POST),这样你的变量就可以通过$_GET超级全局来使用了。例如$_GET['utm_source']$_GET['utm_campaign']

查看您的表模式,您可能还需要将auto_increment添加到ID列,以便在添加新行时自动获得一个值。

代码语言:javascript
复制
ALTER TABLE `utm_param` 
CHANGE COLUMN `id` `id` INT(100) NOT NULL AUTO_INCREMENT;
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39971759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档