我提出了以下解决方案:
CREATE TABLE logger
(
id
int(11)NOT NULL AUTO_INCREMENT,
ip
int(11)NOT NULL,
landing
varchar(16)DEFAULT NULL,
updated
时间戳NOT NOT DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
主要关键(id
)
)ENGINE = InnoDB DEFAULT CHARSET = latin1
查看条目是否存在 选择id,从logger登陆,其中ip = INET_ATON('10 .0.5.9')并更新> date_add(CURRENT_TIMESTAMP,间隔-2天)按id desc limit 1排序;
如果存在更新。这将自动更新更新的字段 更新记录器设置landing ='landing',其中id = 1;
如果不存在,请添加条目 插入记录器(ip,登陆)值(INET_ATON('10 .0.5.9'),'/');
任何人都可以帮助我将php位添加到我的标题中,因为我已经成功地对MySQL位进行了排序。
先谢谢你们!
答案 0 :(得分:2)
一个好的解决方案是使用一个特殊的网址,您可以通过电子邮件广告系列链接到该网址,其中包含真正的"地址被添加为查询参数:
将重定向到http://example.com/foo的示例 http://example.com/campaign.php?forward_to=http%3A%2F%2Fexample.com%2Ffoo&campaign=bar
在该脚本中,您设置一个cookie并转发到实际地址
<?php
setcookie('campaign', $_GET['campaign']);
header('Location: ' + $_GET['forward_to']);
?>
请注意,此脚本需要位于同一个域中。您也可以在没有重定向的情况下执行此操作,只需在functions.php中设置一个钩子并查找campaign
查询sting参数并根据该参数提供不同的样式表。例如:
(这假设您在mytheme/styles/
campaign-1.css, campaign-2.css
中有特定于广告系列的样式表
// in /functions.php
/**
* Sets cookie if 'campaign' var is passed in url
*/
function get_campaign_code($query_vars) {
if (isset($query_vars['campaign'])) {
setcookie('campaign_code', $query_vars['campaign']);
}
}
add_filter('query_vars', 'get_campaign_code');
/**
* Enqueue a campaign specific stylesheet if $_COOKIE['campaign_code'] is available
*/
function enqueue_campaign_stylesheet() {
$cid = $_COOKIE['campaign_code'];
if ( $_COOKIE['campaign_code'] ) {
// creates uri to campaign specific
$src = sprintf('%s/styles/campaign-%d.css',
get_template_directory_uri(),
$cid
);
wp_enqueue_style( 'campaign_css', $src);
}
}
add_action( 'after_setup_theme', 'function_name');
答案 1 :(得分:1)
您不应该使用ip来识别用户,而是使用会话(即使用cookie)
<?php
session_start();
//Set the correct page if not set already
if(!isset($_SESSION['page']){
if(userCameFromEmail)
$_SESSION['page'] = "someUrl1";
else if(userCameFromTV)
$_SESSION['page'] = "someUrl2";
else if(userCameFromCard)
$_SESSION['page'] = "someUrl3";
}
//Redirect
header("Location: " . $_SESSION['page']);
?>
这样,只要他保留cookie,用户就会看到他第一次看到的同一页面。请注意,这并不禁止访问其他网址。如果您不想限制访问更加困难。您可以在每张名片中添加不同的随机代码,并在页面中提出要求。同样适用于电子邮件。根据定义,电视页面是公开的,我猜你不想限制对它的访问。