我有一个具有基本社交功能的PHP / CodeIgniter站点,显然包含“添加好友”链接。单击此链接时,将在后台进行AJAX调用,这会将与该链接关联的用户添加为已登录用户的朋友。该链接也会转换为“删除朋友”,它会按照“添加朋友”的方式执行它所说的内容。
当点击“添加朋友”时,通过电子邮件通知已添加为朋友的用户他或她已被添加为朋友。这就是我的问题所在:如果登录用户不断点击添加/删除/添加/删除/等,我希望避免使用这些通知电子邮件向用户发送垃圾邮件。
我的想法是设置一个添加历史记录表,记录2个用户ID和一个时间戳。如果(当前时间 - 时间戳)大于设定值,我只会发送一封电子邮件。每次用户重新添加朋友时,我都会将时间戳更新为当前时间,以便“扩展”垃圾邮件控件的可扩展性。使用这种方法,我还可以控制用户是否想要在给定的时间间隔内添加太多朋友。
对于时间戳远超过给定值的记录,此表将不时被清除。
这是我的想法,如果你有其他的或使用不同的方法,请分享。
感谢阅读。
答案 0 :(得分:3)
听起来像是最好的选择。为了简化,我可能会发送电子邮件,如果记录存在(而不是基于时间戳检查),然后设置一个cron来系统地处理旧的 - 这样你就可以有更多的控制超过时间限制(您的“限制”逻辑将进入cron脚本,因此您可以决定是否基于比时间戳更复杂的参数删除记录 - 例如,如果特定用户具有删除记录,则不要删除记录大量的活动,以阻止垃圾邮件发送者。你甚至可以是用户或帐户类型特定的,但我确实倾向于过分...)
据我所知,Facebook有"Add Friend"
- > "Pending request"
。从那里开始,你不能做任何事情,直到对方回应,所以你根本不能发送垃圾邮件请求,但我想这取决于你是否需要在另一端进行确认,这取决于你自己的口味。
答案 1 :(得分:1)
我认为你最好将添加好友选项改为双向。因此,第一个用户邀请其他人成为他/她的朋友(将“添加朋友” - 链接更改为“邀请”,这不是链接)。然后另一个人必须接受第一个用户作为朋友。之后,两个用户都可以删除友谊,但在此之后,如果他们中的一个再次决定成为朋友,他可以再次邀请另一个。当然,您可以在此邀请中设置某种有效期,或者某些限制(即一个人只能邀请其他人三次)......
通过这种方式,您不会通过电子邮件向用户发送垃圾邮件(至少因为有些人经常点击链接),人们可以更多地控制他们与谁成为朋友。当然,这种方法确实有一些缺点(比如忽略邀请等等)。
你在问题中描述的方式我认为也是一种打击垃圾邮件的好方法,你也可以做一些限制某人可以将另一个用户添加为朋友的次数(即每天一次,每周三次) ,我不知道,类似的东西)..