如何跟踪未登录的wordpress中的用户?

时间:2016-07-19 08:23:23

标签: php mysql wordpress

我想将WordPress网站与Mix面板集成。所以我需要为访问我们网站的每个用户设置cookie。然后我必须计算他们的访问权限并将其保存为MySQL。现在我正在使用

enter image description here

1 个答案:

答案 0 :(得分:0)

此脚本中的问题是逻辑本身 - 您每次都会生成UID,因此无法匹配任何现有的UID cookie,在每次访问时,您将使用此生成的UID编写全新的cookie。此外,使用UID作为cookie名称是一种错误的方法(再次,你不能将它与已经写好的cookie匹配),所以检查一下:

<?php
    if (!isset($_COOKIE['swain_uid'])) {
        $guid = com_create_guid();
        $ucnt = 1;
    } else {
        $guid = $_COOKIE['swain_uid'];
        $ucnt = ++$_COOKIE['swain_cnt'];
    }
    setcookie('swain_uid', $guid);
    setcookie('swain_cnt', $ucnt);
    print_r($_COOKIE); //for debug purposes only, remove it on production.
?>

这将创建两个带有静态名称的cookie - 一个用于UID,另一个用于计数。然后,您将能够计算每个用户的访问次数(除非用户已清除其cookie)。

<强>更新

关于数据库记录,只需创建表,其中UID为主键,并在cookie逻辑后执行INSERT ON DUPLICATE KEY UPDATE

MySQL表:

CREATE TABLE `visit_count` (
  `userId` varchar(255) NOT NULL,
  `userVisit` int(11) DEFAULT NULL,
  PRIMARY KEY (`userId`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

PHP(除了上面的脚本):

    $con = mysqli_connect('localhost', 'root', '', 'test') or die(mysqli_error($con));
    $query = "INSERT INTO visit_count 
          (userId, userVisit) 
      VALUES 
          ('".$guid."', ".$ucnt.") 
      ON DUPLICATE KEY UPDATE userVisit = ".$ucnt;
    mysqli_query($con, $query) or die(mysqli_error($con));