我是UTM (海胆追踪模块)的新手,我想要获得用户点击链接的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)."')";
}utm_param数据库表结构

发布于 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列,以便在添加新行时自动获得一个值。
ALTER TABLE `utm_param`
CHANGE COLUMN `id` `id` INT(100) NOT NULL AUTO_INCREMENT;https://stackoverflow.com/questions/39971759
复制相似问题