当前位置: 首页 > 知识库问答 >
问题:

Wordpress-基于用户IP的页面重定向

通鸿风
2023-03-14

我提出了以下解决方案:

创建表<代码>记录器<代码>(<代码>id<代码>int(11)NOT NULL AUTO\u INCREMENT,<代码>ip<代码>int(11)NOT NULL,<代码>landing<代码>varchar(16)DEFAULT NULL,<代码>updated<代码>timestamp NOT NULL DEFAULT CURRENT\u timestamp ON UPDATE CURRENT\u timestamp,PRIMARY KEY(<代码>id<代码>))ENGINE=InnoDB DEFAULT CHARSET=拉丁1

查看条目是否存在选择id,从记录器中登陆ip=INET_ATON('10.0.5.9')并更新

如果存在更新。这将自动更新更新的字段更新记录器集land='land',其中id=1;

如果不存在,则将条目插入记录器(ip,着陆)值(INET\u ATON('10.0.5.9'),'/');

有谁能帮我把php位添加到我的头中,因为我现在已经成功地对MySQL位进行了排序。

提前谢谢各位!

共有2个答案

冯野
2023-03-14

您不应该使用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,他就会看到第一次看到的页面。请注意,这并不禁止访问其他URL。如果你不想限制访问,那就更难了。您可以在每张名片中添加不同的随机代码,并在页面中请求。电子邮件也是如此。根据定义,电视页面是公开的,我想你不想限制对它的访问。

范浩宕
2023-03-14

一个好的解决方案是使用一个特殊的URL,您可以从电子邮件活动链接到该URL,其中“真实”地址作为查询参数添加

将重定向到的示例http://example.com/foo http://example.com/campaign.php?forward_to=http://example.com/foo

在该脚本中,您设置了一个cookie并转发到实际地址

<?php 
   setcookie('campaign', $_GET['campaign']);
   header('Location: ' + $_GET['forward_to']);  
?>

请注意,此脚本需要在同一个域上。您也可以在不重定向的情况下完成此操作,只需在functions.php中设置一个钩子并查找活动查询刺参数并在此基础上提供不同的样式表。示例:

(这假设您在mytheme/styles/code>中有特定于市场活动的样式表,命名为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');
 类似资料:
  • 我对WordPress有意见。该网站工作相当正常,但在管理面板上,各种页面,如编辑帖子,安装插件,添加新插件,添加新页面,设置重定向到主页我。我疯狂地在谷歌上搜索了3天,但我刚刚发现了mod_安全问题。结果对我来说也没用。 这是我的.htaccess文件

  • 我是新来的Wordpress.但我知道Joomla非常好。我试图创建一个插件,其中有前端和后端维护部分。我完成了我的后端部分,我正在去前端部分的路上。但是我有些怀疑。我的疑惑是,我找到了两种实现前端页面的方法。一种是将php页面复制到模板目录,并在添加页面部分分配模板。另一种是在插件中创建短代码,并在页面部分添加一些标签。 我的疑问是,在Wordpress中,哪种方法是正确的? 在Joomla中,

  • 问题内容: 我有一个网站,有一个用户系统。我想将wordpress的用户系统集成到该网站的系统中,但是我仍然想使用该网站的注册/登录页面。我不希望任何人都能使用Wordpress的登录或注册表格进行登录或注册。相反,当他们尝试访问Wordpress中的登录/注册页面时,我希望这些页面将它们重定向到我自己的登录/注册页面。 有什么办法吗?我已经尝试过Google,但是我所能找到的只是在用户登录或注册

  • 问题内容: 我想设置我的网站,以便如果用户点击该页面并且他们已经登录,它将把他们重定向到主页。如果未登录,它将正常显示。由于登录代码内置在Django中,我该怎么做? 问题答案: 我假设你当前正在使用内置的登录视图, 或你网址中的类似内容。 你可以编写包含默认视图的登录视图。它将检查用户是否已经登录,如果已经登录则重定向,否则使用默认视图。 就像是: 当然可以相应地更改你的网址:

  • 我对如何在登录时重定向用户感到困惑 脚本: - 我正在计划我的身份验证。ts,第一次登录时,在我的firebase上,我将设置一个类似于1(如果用户完成了测试)和0(如果用户没有完成测试)的检查器 以下是登录代码: 一个uth.ts

  • 问题内容: 我想将变量传递到特定页面。我找到了一个简单的示例,解释了如何在Wordpress中使用Ajax。 JavaScript: 插入的一段PHP 不幸的是我不能传递变量。我检查了代码,并得到以下错误: 您是否知道另一种获得相同结果的方法? 问题答案: 您距离很近,但缺少一些小东西…… 我在评论中的意思是,您需要在两种情况下都使用这种方式: 更改 为 : 新增 : 对于您的jQuery脚本文件