如何在不使用网络存储登录的情况下识别用户在网站上的活动

上下文

我对网络存储的实施有疑问。我有一个网站,用户可以在其中创建具有两个可能选项(是/否)的民意调查。然后,用户可以通过单击他们同意的选项来对投票进行投票。我的网站目前结构合理,因此用户必须登录才能对辩论进行投票。如果未登录,则会收到一条消息,提示您需要登录(如果要查看其功能,则我的网站页面为here)。但是,我想更改代码,以便没有帐户的用户可以对辩论进行投票。为此,我想我需要使用网络存储来记住重要的信息,这些信息可以识别用户及其所投票的辩论。

问题

我不确定我将如何实现网络存储,这样我就可以记住用户对哪些辩论进行了投票。我认为在jQuery click事件上一定会发生一些事情,该事件会记住用户投票的辩论,也许是通过记住民意测验ID,就像这样:

$("#poll").on("click",function() {

localStorage.setItem("poll_id","[insert poll_id here]"); 
//store poll_id to web storage to be checked again in the future,//verifying that the user HAS already voted on the poll with this specific ID.

});

我对这实际上会做什么感到困惑。我知道它将数据存储在本地存储中,但是接下来我该怎么办?我知道我必须将此数据插入数据库的poll_votes表中以记住投票已发生,但我只是将idUsers列设置为null,因为用户没有没有会话ID(因为他们尚未登录)。但是,我是否不必再添加另一列来在数据库中存储有关用户的某些信息以检查客户端的值?

CREATE TABLE poll_votes (
    vote_id INT(11) AUTO_INCREMENT PRIMARY KEY NOT NULL,yes VARCHAR(50) NOT NULL,no VARCHAR(50) NOT NULL,poll_id INT(11) NOT NULL,idUsers INT(11) NOT NULL,article_id INT(11) UNSIGNED,seen TINYTEXT NOT NULL,FOREIGN KEY (article_id) REFERENCES articles (article_id) ON DELETE CASCADE ON UPDATE CASCADE,FOREIGN KEY (poll_id) REFERENCES polls (poll_id) ON DELETE CASCADE ON UPDATE CASCADE,FOREIGN KEY (idUsers) REFERENCES users (idUsers) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB;

我是否还要添加一列来跟踪IP地址或类似地址?我读到这是可能的,但并不总是可靠的。另外,我无法将用户已投票的poll_id存储在本地存储的数组中,因为每当我向具有本地密钥的localStorage提交任何内容时,都不会发生任何事情。

简而言之

基本上,我想知道我必须使用网络存储来存储哪些信息,以及如何记住未登录用户是否已经对加载到页面中的所有民意调查进行了投票(如果我应该使用网络存储)。我什至会以正确的方式去做吗?这个概念对我来说是一个很新的概念,所以我什至不确定我是否在问正确的问题。让我知道是否可以澄清任何事情。谢谢。

iCMS 回答:如何在不使用网络存储登录的情况下识别用户在网站上的活动

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2014735.html

大家都在问