如何使用 PHP 获取 UTM?

Use*_*019 3 php google-analytics utm

我是 UTM(Urchin 跟踪模块)的新手,我想获取用户单击链接的 UTM 参数(例如 facebook、google、twitter)以及用户单击具有相同 utm 源的链接的次数并保存它到mysql数据库。

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

如何解决这个问题?

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)."')";
}
Run Code Online (Sandbox Code Playgroud)

utm_param db 表结构

描述 utm_param;

Mat*_*ner 5

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

请阅读有关如何避免 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 列,以便在添加新行时自动获取一个值。

ALTER TABLE `utm_param` 
CHANGE COLUMN `id` `id` INT(100) NOT NULL AUTO_INCREMENT;
Run Code Online (Sandbox Code Playgroud)