首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >推荐系统PHP

推荐系统PHP
EN

Stack Overflow用户
提问于 2011-06-25 08:25:00
回答 3查看 2.5K关注 0票数 3

我有一个基于会员制的网站和即时通讯计划实现一个推荐系统。我的网站是基于信用的,想法是,如果用户X引用用户Y,那么用户X将获得100个奖金积分。

以前有人建立过推荐系统吗?如果有,我应该牢记哪些障碍?我今天晚上探听了一遍,但找不到合适的答案。

我的理论是给每个用户一个随机字符串,当他们注册时生成并存储在数据库中,然后用户将看到一个包含URL的URL。当他们传递给某人(用户Z)时,用户Z被发送到一个页面,然后页面使用GET方法来收集随机字符串并更新他们当前占用的DB行,这听起来可行吗?或者它很容易被攻破?

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-25 09:51:51

通常情况下,这被称为附属计划。您在描述中基本上是正确的,但我也会将来自$_GET变量的推荐存储到会话或cookie中,这样即使用户离开推荐页面,也可以获得积分。我的意思是-通常情况下,联盟计划只在用户Y注册或购买东西的情况下才会向用户X提供积分。因此,用户Y可以点击推荐页面,然后环顾四周,然后找到返回注册页面或购买页面的方法。在这一点上,推荐$_GET变量丢失了,信用也丢失了。因此,您的推荐页面将存储推荐代码的会话或cookie,而您的注册页面或结帐回调将检查这些变量并采取相应的操作。我相信scott的方法是好的,如果像他提到的那样存在顾虑,但或者您可能希望推荐始终保持不变,例如人们可能会在名片上放置商业推荐。他们在传销中做了很多这样的事情,那里的代表在中央公司网站上有个人资料,所以他们不需要自己做。

我不知道您所说的更新数据库行是什么意思。您是否建议使用count字段之类的字段来保存表示总推荐次数的数字?如果是这样的话,我会说这不是一个好主意。您应该将每个成功的推荐作为自己的条目记录在关系表中,并将引荐者的id作为公用键。这样你就可以在推荐人中存储所有类型的帖子数据,这样你就知道你是不是被搞乱了。比方说,一个用户创建了1000个雅虎账户,并注册了自己的推荐代码,只是为了获得奖金积分。您的关系表可能会看到重复的IP地址或递增的推荐电子邮件(johndoe1000@yahoo.com、johndoe1001@yahoo.com等),然后您就知道要采取行动了。

你的建议的安全性归根结底取决于你如何处理数据。如果你盲目地在数据库中插入任何东西,那么一切都是有害的。只需确保正确地避开事物,并密切关注行为,即使是手动操作。你应该会好起来的。

票数 4
EN

Stack Overflow用户

发布于 2011-06-25 08:42:18

如果该值仍然是静态的,那么它肯定会被破坏。我建议您不要给用户一个散列(为了简单起见,我们将其命名为MD5 ),并将其保留为他们唯一的字符串。您可以创建一个临时表,其中包含所有已发送请求的记录,包括用户id和当前时间的随机散列(使用类似date()函数的内容),以及附加到每个请求末尾的用户主键值。因此,您可以使用以下命令在mysql中生成唯一的散列

SELECT MD5( CONCAT( NOW(),user.id ) ) AS hash FROM user WHERE user.id = #

如果您每次都使用相同的散列,只要有人发现该散列,除非得到适当的防御,否则可能会比为每个单独的推荐使用不同的散列容易得多。

票数 1
EN

Stack Overflow用户

发布于 2011-06-25 08:42:51

您可以直接使用用户名X而不是随机字符串吗?

此外,对于随机字符串,您可以在两个用户具有相同随机字符串的情况下获得。或者你打算同时使用这两种方法?

我不确定我是否有必要确保推荐,你害怕被滥用吗?一个用户使用多个账号来获得免费积分?他们可以用随机字符串做得很好,如果你想防止这种情况,你应该设置cookie和/或检查IP地址。

如果有人破坏了系统,我们谈论的是什么危险?只是免费的点数,还是人们真的在为这些点数付费?如果是这样的话,用户需要付费注册吗?

如果用户付费成为会员,我认为没有理由限制推荐?只是在用户Y实际付钱之前不要奖励用户X任何东西。在引用用户Y时设置cookie/会话,如果用户Y在会话持有用户X的用户名时注册,则奖励用户X。

关于你在自动取款机上发布的信息我只能说这么多了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6474987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档