我如何跟踪哪个用户点击了我的按钮?

时间:2019-05-28 作者:Shaun21uk

在一个目录中的企业列表上,我有一个按钮,它将指向一个自定义插件。

自定义插件需要知道点击按钮进入此处的用户(注册用户)的用户id,以及它来自的页面的业务id。

如何在插件中跟踪该信息?

谢谢

2 个回复
最合适的回答,由SO网友:Rick Hellewell 整理而成

虽然您可以在URL链接上放置参数,但请务必小心使用的参数。

例如,另一个答案建议使用如下参数:

https://www.example.com/somepage/?userid=12
使用用户ID号不是很安全。什么是阻止一个不择手段的人使用你的链接,但另一个用户ID号?不好的事情可能会(也可能不会)发生,这取决于您如何使用该值。(更不用说可能暴露的用户ID了……如果邪恶的人使用的用户ID为“1”-通常是“admin”用户怎么办?)

最好使用会话变量来跟踪访问您站点的用户。或者,一块饼干(尽管还有那些讨厌的GDPR家伙需要担心)。

但我不喜欢使用包含可能的个人信息的查询字符串。

Added

至于实现(甚至是代码),我把它留给OP。但我会

创建该用户唯一的GUID值。登录后执行此操作,并将其存储为会话创建所需的其他变量将GUID与其他变量放在一起。如果你想的话,对它们进行一点编码。可能是JSON中的数组?任何有效的方法都可以将该值添加到URL中,当用户单击URL时,将URL提供给访问者

检查会话变量中的GUID值,确保它与URL中的GUID匹配。如果正常,请根据需要提取其他值。如果不正常,请向访问者显示警告/错误消息,要求他们登录并重试。GUID是一个无法(轻松)计算的值。让它长40个字符。googles/bings/ducks上提供了许多GUID生成器函数。

将其存储为会话变量意味着只要用户留在您的站点上(直到会话变量过期),就可以使用它。

如果需要进一步混淆查询字符串中的其他变量(添加到GUID变量中),则根据需要进行编码/解码。

所有这一切的代码都在google/bings/ducks上。您应该能够找到一些可以根据您的特定需求进行修改的内容。

以上只是一个简单的想法。您可能会想到对您的情况有用的增强功能。

SO网友:Catalin

不太确定,但您可以在该链接上传递一个变量,并在URL中加载所需的页面。

<?php $user_id = get_current_user_id(); ?>
<a href="/my-plugin-url<?php echo $user_id; ?>">View/Download plugin</a>
这将加载/我的插件url页面,其中包含要跟踪的user\\u id